我正在用PHP加密密码,并且想要在另一个盒子上解密它。我没有运气,我宁愿能够从bash中解密它并回应它。以下是PHP中的测试代码片段。如何使用BASH命令解密PHP Openssl加密
$textToEncrypt = "My super secret information.";
$encryptionMethod = "AES-256-CBC";
$secretHash = "Testkey";
//To encrypt
$encryptedMessage = openssl_encrypt($textToEncrypt, $encryptionMethod, $secretHash);
//To Decrypt
$decryptedMessage = openssl_decrypt($encryptedMessage, $encryptionMethod, $secretHash);
//Result
echo "Encrypted: $encryptedMessage <br>Decrypted: $decryptedMessage";
我试过很多方法在Ubuntu上解密它,甚至将数据存储到文件并将其输出到文件。命令尝试是:
openssl aes-256-cbc -a -d -k Testkey -in foo.txt -out secrets.txt
哪里foo.txt
从PHP加密返回的值,并secrets.txt
是输出。我怎样才能做到这一点?
不使用初始化向量(IV)是不是一个好主意;也许它不工作,因为它很害怕。 –
如果我添加了,我的php将会是什么样子,我想它的格式是如何在PHP和bash之间进行的。 – Hydtek
'-k Testkey'将从密码'Testkey'派生出一个密钥,而在php'openssl_encrypt(...,...,'Testkey')'将直接使用'Testkey'作为密钥。是否真的有必要以这种方式使用openssl命令行工具(即a)在所有b)中直接使用,而不需要其他程序/脚本)? – VolkerK