如何在 openssl_pkey_new 中指定密码加密强度?
使用 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
Using the PHP functions openssl_pkey_new
and openssl_pkey_export
to generate an RSA key, how can one ensure the toughest password protection?
e.g.
$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 );
Using openssl from the command line, I can specify tripledes like so:
openssl genrsa -des3 -passout pass:foopass 2048
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
据我所知,在
$configargs
中将encrypt_key
指定为true
(就像您在代码示例中所做的那样)已经使用 Triple DES 进行加密。如果您检查$keyout
的输出,您将看到:无论您使用
sha1
、md5
、sha256< /code> 或任何其他摘要。
换句话说,
'encrypt_key' => true
与 openssl genrsa -des3 完全相同。As far as I know, specifying the
encrypt_key
astrue
in$configargs
(like you did in your code example) already encrypts using Triple DES. If you check the output of$keyout
, you will see:This is true whether you use a
sha1
,md5
,sha256
or any other digests.In other words,
'encrypt_key' => true
does exactly the same asopenssl genrsa -des3
.