0

Web アプリケーションのファイル ダウンロード システムを openssl (openssl_encrypt および openssl_decrypt) で暗号化していますが、そのためにランダムなパスワードと 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(); を試しました。しかし、それはブール値のfalseを返しました。これは正しい方法ですか?

ここからヒントを得ました: 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 に答える