CodeIgniter加密解码无法正常工作

时间:2017-06-09 00:07:04

标签: php codeigniter encryption

我正在使用CodeIgniter加密库,一切正常,但现在我已将项目移至新服务器,并且简单地停止工作。

这个简单的测试:

List

它回归:

$this->load->library('encrypt');
$str = '12345';
$key = 'my-secret-key';
$encrypted = $this->encrypt->encode($str, $key);
var_dump($encrypted);
var_dump($this->encrypt->decode($encrypted, $key));
die();

(有时只出现PHP错误/警告)

由于

1 个答案:

答案 0 :(得分:0)

始终使用精确长度密钥(AES为128,192或256位,精确长度为IV(AES为128位或16字节),否则会出现错误或添加一些未知填充。

错误很明显:

  

接收大小为38的初始化向量,但此加密模式需要大小为

IV的长度不正确。

当然存在提供的代码没有IV的问题。

此外,错误消息指出预期的IV长度为32个字节,即不是AES。可能是Rijndael使用256位密钥。这是使用mcrypt的常见错误,其中参数是块大小而不是密钥大小。密钥大小取决于传递密钥的大小。

MCRYPT_RIJNDAEL_256是Rijndael,其块大小为256位,不是 AES,
MCRYPT_RIJNDAEL_128是Rijndael,其块大小为128位, AES