关于更新到php 5.6.2的mcrypt警告;尺寸x的键不受支持

时间:2015-03-09 15:07:02

标签: php security mcrypt

从PHP 5.5.18更新到PHP 5.6.2后,我们收到以下警告:

mcrypt_decrypt(): Key of size 20 not supported by this algorithm. Only keys of sizes 16, 24 or 32 supported

加密算法在此之前似乎工作正常:

$decrypttext = mcrypt_decrypt(
  MCRYPT_RIJNDAEL_256,
  $this->keys[$key_label],
  $crypttext,
  MCRYPT_MODE_ECB,
  $iv
);

重新加密所有内容将是一件非常大的痛苦,是否有一些东西可以用来填充密钥,以便它能像以前一样工作?

据推测,这里没有任何安全漏洞。

1 个答案:

答案 0 :(得分:13)

在此更改之前,无效大小的密钥使用\0填充到下一个有效密钥大小,因此您可能应该通过添加四个空字节\0\0\0\0来对密钥执行相同操作到最后。

现在需要注意的是,这是一个弱密钥,无法提供预期的安全级别,但它不会比现在更糟糕,而且你还有其他重要的安全问题。也在加密,例如使用ECB模式,这通常是安全的灾难。

因此,当您决定是时候更新时,选择有效大小的密钥只是需要进行的更改之一,您应该尽快做到这一点你切实可行。