0

私が試した:

$data = array('ip'=>'120.0.3.4','user'=>'robert');

 $this->load->library('encrypt');
    $this->encrypt->set_cipher(MCRYPT_RIJNDAEL_256);
    $this->encrypt->set_mode(MCRYPT_MODE_ECB);
    $key = random_string();
    $o=$this->encrypt->encode($data,$key);
var_dump($o);
$this->encrypt->set_cipher(MCRYPT_RIJNDAEL_256);
    $this->encrypt->set_mode(MCRYPT_MODE_ECB);
    $o = $this->encrypt->decode($o,$key);
    var_dump($o);

デコード時に奇妙な文字を返します:

string(44) "CVwMzZGkzagW4wHbUZfNpVWACQp2Fx4TeAO2KLqZs3I=" string(32) "��pz��xJx�jʊ8�Kw��mS�Y �1�_�" 

なにか提案を?

これは配列の暗号化が原因ですか? 暗号化されたデータの配列を使用するには、すべての配列を暗号化するのではなく、値ごとに暗号化する必要がありますか?? どうも

4

1 に答える 1

2

に配列を渡してい$this->encrypt->encode()ます。このencode()メソッドは文字列を取ります。暗号化クラスを参照してください。

PHP エラーが有効になっている場合は、次のようにも表示されます。

A PHP Error was encountered
Severity: Warning
Message: mcrypt_encrypt() expects parameter 3 to be string, array given
Filename: libraries/Encrypt.php

これらをキャッチするには、開発マシンでPHP エラーをオンにします。

于 2012-10-14T22:39:02.683 に答える