【发布时间】:2015-03-13 07:13:12
【问题描述】:
256 bit = 256/8 = 32
192 bit = 192/8 = 24
128 bit = 128/8 = 16
<?PHP
include("AES.php"); // http://aesencryption.net/
$string = "myawesometext to encrypt!";
$key = "1234567890123456789012345";
$block = 256;
$aes = new AES($string, $key, $block);
$enc = $aes->encrypt();
$aes->setData($enc);
$dec= $aes->decrypt();
echo "After encryption: ".$enc."<br/>";
echo "After decryption: ".$dec."<br/>";
?>
错误:mcrypt_decrypt():此算法不支持大小为 25 的密钥。仅支持大小为 16、24 或 32 的键
当我使用这个网站时:http://aesencryption.net/ 加密和解密工作完美。 PHP:5.6.3
改变密钥大小并不是一个真正的选择,看看它应该如何工作。
我为什么要使用 AES? 我在两台服务器(一个是第三方)之间进行通信,如果没有加密,通信中传输的信息可能是安全漏洞。否则我会使用散列。此数据需要可以由第三方使用密钥恢复。
重要提示:
- 当前 PHP 版本:5.6.3 //不起作用
- 最后一个 PHP 版本:5.5.15//works
----------------已解决
版本:5.6.0 " 不再接受无效的密钥和 iv 大小。如果输入无效,mcrypt_encrypt() 现在将抛出警告并返回 FALSE。以前的密钥和 IV 用 '\0' 字节填充到下一个有效大小。" - http://php.net/manual/en/function.mcrypt-encrypt.php
【问题讨论】:
-
什么?我想你误会了。
-
我根本没有改变我的问题,我只是根除难以阅读的代码,并改变了格式。问题是为什么我的加密无法解密,尽管它可以在 AESencyption.net 网站上解密。
-
请将您的答案移至答案部分并将其从您的问题中删除。
标签: php encryption aes mcrypt