使用 PHP 函数 openssl_pkey_new
和 openssl_pkey_export
要生成 RSA key ,如何确保最严格的密码保护?
例如
$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
最佳答案
据我所知,指定 encrypt_key
如 true
在 $configargs
(就像您在代码示例中所做的那样)已经使用三重 DES 进行了加密。如果您检查 $keyout
的输出, 你会看见:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,6FDE8DC937CC1C27
无论您使用
sha1
都是如此, md5
, sha256
或任何其他摘要。换句话说,
'encrypt_key' => true
与 openssl genrsa -des3
完全相同.
关于php - 如何在 openssl_pkey_new 中指定密码加密强度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4444223/