小编Lay*_*ain的帖子

带有SQL函数的Doctrine DQL查询

我正在将用CodeIgniter编写的简单Web应用程序移植到Symfony2包中.我是Symfony2和Doctrine的新手,我遇到一个SQL查询问题,我想在DQL中重写.我已准备好进入我的捆绑包,我已经创建了Entity类,我能够将数据插入到数据库中,并以Symfony2提供的面向对象编程方式进行简单查询.不幸的是,我不知道如何在DQL中实现这个SQL查询:

$sql = "SELECT * FROM t WHERE 
UNIX_TIMESTAMP(t.date) > ".(time()-300)." AND
ROUND(t.x,3) = ".round($x, 3);
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,有一些SQL函数调用需要在数据库服务器上执行.主义无法理解这种呼唤.当然,我可以选择退出使用Doctrine并使用我的Symfony2包中的基本PDO进行此查询,但我想充分利用Symfony2和Doctrine.因此,我希望以OOP方式完成此操作,或者使用能够理解类似内容的智能DQL查询:

$em->createQuery("SELECT t FROM MyTestBundle:MyEntity t WHERE t.x = :x")
->setParameter("x", round($x,3));
Run Code Online (Sandbox Code Playgroud)

但是能够将我的SQL查询从旧应用程序重写到我的新包是必须的.请帮我找到正确的解决方案.

php sql dql symfony doctrine-orm

5
推荐指数
2
解决办法
5688
查看次数

Java Cipher - PBE线程安全问题

我似乎有Cipher和/或PBEKeySpec的线程安全问题.

  • JDK:1.8.0_102,1.8.0_151和9.0.1 + 11
  • PBKDF2算法:PBKDF2WithHmacSHA1
  • 密码算法:AES/CFB/NoPadding
  • 关键算法:AES

我知道如果我们使用相同的实例,这些类不是安全的,但事实并非如此,我在每次解码时都会得到一个新的实例.但即便如此,有时解码失败,也没有例外,只是意外的解码值.

我已经能够重现这个问题:

@Test
public void shouldBeThreadSafe() {

    final byte[] encoded = {
        27, 26, 18, 88, 84, -87, -40, -91, 70, -74, 87, -21, -124,
        -114, -44, -24, 7, -7, 104, -26, 45, 96, 119, 45, -74, 51
    };
    final String expected = "dummy data";
    final Charset charset = StandardCharsets.UTF_8;

    final String salt = "e47312da-bc71-4bde-8183-5e25db6f0987";
    final String passphrase = "dummy-passphrase";

    // Crypto configuration
    final int iterationCount = 10;
    final int keyStrength = 128; …
Run Code Online (Sandbox Code Playgroud)

java encryption aes thread-safety pbkdf2

5
推荐指数
1
解决办法
656
查看次数

标签 统计

aes ×1

doctrine-orm ×1

dql ×1

encryption ×1

java ×1

pbkdf2 ×1

php ×1

sql ×1

symfony ×1

thread-safety ×1