Как я могу указать надежность шифрования пароля в openssl_pkey_new? - PullRequest
2 голосов
/ 15 декабря 2010

Используя функции PHP openssl_pkey_new и openssl_pkey_export для генерации ключа RSA, как можно обеспечить самую надежную защиту паролем?Например,

$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 );

Используя openssl из командной строки, я могу указать тройки следующим образом:

 openssl genrsa -des3 -passout pass:foopass 2048

1 Ответ

3 голосов
/ 15 декабря 2010

Насколько я знаю, указание encrypt_key как true в $configargs (как вы сделали в своем примере кода) уже шифрует с использованием Triple DES.Если вы проверите вывод $keyout, вы увидите:

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

Это верно, используете ли вы sha1, md5, sha256 или любые другие дайджесты.1012 * Другими словами, 'encrypt_key' => true делает то же самое, что и openssl genrsa -des3.

...