swd*_*kaj 0 php encryption mcrypt encryption-symmetric password-encryption
我正在尝试使用 加密密码mcrypt_encrypt()。它在 上工作正常localhost,但是当进入在线状态时,我的输出是""并且我收到此警告:
警告:mcrypt_encrypt():此算法不支持大小为 10 的密钥。仅支持尺寸为 16、24 或 32 的密钥
这是我正在使用的代码:
$text="thisismypassword123";
$salt="1234567824";
return trim (
base64_encode (
mcrypt_encrypt (
MCRYPT_RIJNDAEL_256, $salt, $text, MCRYPT_MODE_ECB, mcrypt_create_iv (
mcrypt_get_iv_size (
MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB
),
MCRYPT_RAND
)
)
)
);
Run Code Online (Sandbox Code Playgroud)
造成这种情况的原因是什么?我可以采取什么措施来解决这个问题?
小智 5
解决向后兼容性的简单方法是用\0填充当前密码。
例如,对于 PHP 5.4 上当前的 $key = "1234567890",由于当前密钥大小为 10,它将在 PHP 5.6 版本上停止工作。
要解决此问题而不对应用程序产生任何影响,只需更改为 $key = "1234567890\0\0\0\0\0\0" (直到达到16或32,...)
| 归档时间: |
|
| 查看次数: |
7457 次 |
| 最近记录: |