【发布时间】:2015-05-10 19:15:26
【问题描述】:
从 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
);
必须重新加密所有内容会很痛苦,我可以用什么东西来填充密钥,以便它像以前一样工作吗?
大概这里没有任何安全漏洞。
【问题讨论】:
-
查看 5.5 和 5.6 之间的向后不兼容更改,担心您将不得不编写一个 Fixer,因为您从 PHP Documentation 开始做错了
-
“大概这里没有任何安全漏洞”——这可能是每一个被黑客入侵的服务之前都表现出的态度……
-
@CBroe “大概这里没有任何安全漏洞” - 我想不出任何安全漏洞,但如果有人知道,你可以告诉我。不像“我不能被安全所困扰”..所以感谢你不必要的高而有力的评论。
-
str_pad($this->keys[$key_label], "\0", 32)应该这样做,但是MCRYPT_RIJNDAEL_256?欧洲央行模式?呜呜 :( -
github 扩展提供经过身份验证的加密。 libmcrypt 自 2007 年以来已被废弃,在 PHP 7 中,可能会被 openssl 取代。