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

Art*_*rth 5 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
Run Code Online (Sandbox Code Playgroud)

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

$decrypttext = mcrypt_decrypt(
  MCRYPT_RIJNDAEL_256,
  $this->keys[$key_label],
  $crypttext,
  MCRYPT_MODE_ECB,
  $iv
);
Run Code Online (Sandbox Code Playgroud)

重新加密所有东西将是一件很大的痛苦,有什么东西可以用来填充密钥,以便它能像以前一样工作吗?

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

小智 13

在此更改之前,无效大小的键被填充\0到下一个有效密钥大小,因此可能您应该能够通过向\0\0\0\0末尾添加四个空字节来对密钥执行相同操作.

现在需要注意的是,这是一个弱密钥,无法提供预期的安全级别,但它不会比现有的更糟糕,并且您在加密方式方面存在其他重大安全问题同样,例如使用ECB模式,这对于安全性通常是灾难性的.

所以,当你决定是时候更新,选择一个有效的大小的关键仅仅是需要作出改变之一,你应该尽快你可行性的可以做到这一点.