- > getArrayResult();改变Symfony的价值?

时间:2016-07-12 07:23:34

标签: php symfony encryption

我有一个Bundle来解密/解密我的数据库中的值:Ambta Bundle

通常Bundle会自动解密所有值"#34;拿取它们时。 但是,如果您通过->getArrayResult();获取它们,结果仍然会被解密。我想在之后手动解密。

查询

public function allActiveArray(){

    return $this->getEntityManager()
        ->createQuery(
            'SELECT r, a, z FROM AppBundle:Rating r JOIN r.assignment a JOIN a.zip z WHERE r.published = :publish ORDER BY r.createdAt DESC'
        )
        ->setParameter('publish',true)
        ->getArrayResult();
}

我这样解密:

$dspName = $this->get('ambta_doctrine_encrypt.encryptor')->decrypt($rating['displayName']);

这会以某种方式工作,但返回的$decrypt会在解密后附加一些乱码数据:

数据库中的displayName

3Ytmz0qWhj0Lk/New2hqCEJGXaATD+6PafxYuxuprCo=<ENC>

$ dspName的预期输出

T. H.

$ dspName的实际输出

T. H.[9�gם��)�9/P�p�^��R/��

有些东西被添加了,但为什么会这样?

1 个答案:

答案 0 :(得分:1)

从看到的内容3Ytmz0qWhj0Lk/New2hqCEJGXaATD+6PafxYuxuprCo=<ENC>开始,加密数据经过base64编码,然后<ENC>附加到其中(=用于补充,结束,base64)。
实际上,bundle add those看起来像是识别加密数据。请先尝试删除这些字符。