0

我正在使用 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(); 但它让我返回布尔值错误。这是正确的方法吗?

我从这里得到了提示:PHP 中的双向加密

作为运行 WAMP localhost 的测试环境。

4

1 回答 1

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;
}
于 2013-01-11T13:03:11.443 回答