PHP中的AES加密以在openssl中解密
Posted
技术标签:
【中文标题】PHP中的AES加密以在openssl中解密【英文标题】:AES Encrypt in PHP to decrypt in openssl 【发布时间】:2011-01-06 16:51:25 【问题描述】: set_include_path('./phpseclib0.2.1a'); //http://phpseclib.sourceforge.net/ 包括('Crypt/AES.php'); $plaintext = 'PLAINTEXT'; $aes = new Crypt_AES(CRYPT_AES_MODE_CBC); $aes->setKey('1234123412341234'); $ciphertext = $aes->加密($plaintext); $fp = fopen("ciphertextAES", "wb"); fwrite($fp, $密文); fclose($fp); -------------------------- openssl enc -aes-128-cbc -d -in ciphertextAES -out plaintext.txt -pass pass:1234123412341234 -nosalt 解密不好????????????????????? 3840:错误:06065064:数字信封例程:EVP_DecryptFinal_ex:解密错误:.\crypto\evp\evp_enc.c:466:【问题讨论】:
那段代码有问题吗?你想做什么?请更具描述性,以便我们为您提供帮助。 【参考方案1】:openssl enc -aes-128-cbc -e -in plaintext.txt -out ciphertext -nosalt -K AA
-iv AA -p
-p
向您显示正在使用的密钥和 IV:
key=AA000000000000000000000000000000
iv =AA000000000000000000000000000000
省略-K
和-iv
参数并改用-pass
,您会发现密码和密钥根本不是一回事。无论是否使用-nosalt
选项都是如此。
【讨论】:
以上是关于PHP中的AES加密以在openssl中解密的主要内容,如果未能解决你的问题,请参考以下文章
php openssl aes-256-cbc key长度自动匹配了128的长度,为啥
使用 OpenSSL/C++ 和 PHP/Mcrypt 的 AES-128-CBC 加密:仅解密第一个块