我正在使用openssl(openssl_encrypt和openssl_decrypt)加密我的Web应用程序文件下载系统,我想生成随机密码和IV。加密方法为AES-256-CBC。我是加密的新手,发现关于这个问题的信息非常少。
function encryptString($str) {
$encryptionMethod = "AES-256-CBC";
$secretHash = "gererated random secret openssl key here";
$encryptedStr = openssl_encrypt($str, $encryptionMethod, $secretHash, false, "generated random IV here");
return $encryptedStr;
}
我试过openssl_pkey_new();但它返回了我布尔假。这是正确的方法吗?
我从这里得到了提示:Two-way encryption in PHP
作为运行WAMP localhost的测试环境。
答案 0 :(得分:0)
由于在Windows环境下以编程方式使用php进行此操作是有问题的,因此我在Linux中生成了密码。
openssl enc -d -a -md sha1 -aes-256-cbc -nosalt -p
Windows的安装说明在这里找到:php.net/manual/en/openssl.installation.php但我仍然无法正常工作。
我还需要稍微改变一下这个功能才能使它正常工作:
function encryptUrl($url) {
$encryptionMethod = "AES-256-CBC";
$pass = "Generated Pass";
$iv = "Generated IV";
$encryptedUrl = base64_encode(openssl_encrypt($url, $encryptionMethod, $pass, false, $iv));
return $encryptedUrl;
}