Php 如何为openssl加密生成随机密码和IV
我正在用openssl(openssl\u加密和openssl\u解密)加密我的web应用程序文件下载系统,我想为此生成随机密码和IV。加密方法为AES-256-CBC。我是密码学的新手,发现关于这个问题的信息很少Php 如何为openssl加密生成随机密码和IV,php,encryption,random,passwords,openssl,Php,Encryption,Random,Passwords,Openssl,我正在用openssl(openssl\u加密和openssl\u解密)加密我的web应用程序文件下载系统,我想为此生成随机密码和IV。加密方法为AES-256-CBC。我是密码学的新手,发现关于这个问题的信息很少 function encryptString($str) { $encryptionMethod = "AES-256-CBC"; $secretHash = "gererated random secret openssl key here"; $enc
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();但它给了我一个错误的答案。这条路对吗
我从这里得到了提示:
作为测试环境,我正在运行WAMP localhost。因为在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;
}