2010-12-14 6 views
2

PHP関数openssl_pkey_newopenssl_pkey_exportを使用してRSA鍵を生成すると、どのようにして最も厳しいパスワード保護を保証できますか?例: コマンドラインからOpenSSLを使用してopenssl_pkey_newでパスワードの暗号強度をどのように指定できますか?

$conf = array (
    'digest_alg'  => 'sha256', 
    'private_key_type' => OPENSSL_KEYTYPE_RSA, 
    'private_key_bits' => 2048, 
    'encrypt_key'  => true, 
); 
$keypair = openssl_pkey_new($conf); 
openssl_pkey_export($keypair, $keyout, 'foopass', $conf); 

、私はそうのようなトリプルDESを指定することができます。

openssl genrsa -des3 -passout pass:foopass 2048 
+0

暗号化のセキュリティは、あなたが行っていることと大きく関連しています。詳細は必須です。 – Incognito

+0

私は私の秘密鍵をデータベースに保存しており、盗まれた場合にはデータベースが役に立たないほどパスワード保護が強固であることを保証したい。 – Tim

答えて

3

私の知る限りでは、(あなたがあなたのコード例で行ったように)$configargstrueようencrypt_keyを指定しますすでにトリプルDESを使用して暗号化しています。あなたが$keyoutの出力を確認した場合は、表示されます。

-----BEGIN RSA PRIVATE KEY----- 
Proc-Type: 4,ENCRYPTED 
DEK-Info: DES-EDE3-CBC,6FDE8DC937CC1C27 

これは、あなたがsha1md5sha256または任意の他のダイジェストを使用するかどうか本当です。

つまり、'encrypt_key' => trueは、openssl genrsa -des3とまったく同じです。

+0

素晴らしい。ありがとう!! – Tim

関連する問題