【问题标题】:How to generate random password and IV for openssl encryption如何为openssl加密生成随机密码和IV
【发布时间】:2013-01-11 10:29:57
【问题描述】:

我正在使用 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 的测试环境。

【问题讨论】:

    标签: php encryption random passwords openssl


    【解决方案1】:

    由于在 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-20
      • 1970-01-01
      • 2018-11-01
      • 1970-01-01
      • 2012-11-15
      • 2012-10-05
      • 2010-09-08
      相关资源
      最近更新 更多