如何在 openssl_pkey_new 中指定密码加密强度?

发布于 2024-10-07 18:46:16 字数 524 浏览 4 评论 0原文

使用 PHP 函数 openssl_pkey_newopenssl_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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遮云壑 2024-10-14 18:46:16

据我所知,在 $configargs 中将 encrypt_key 指定为 true (就像您在代码示例中所做的那样)已经使用 Triple DES 进行加密。如果您检查 $keyout 的输出,您将看到:

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

无论您使用 sha1md5sha256< /code> 或任何其他摘要。

换句话说,'encrypt_key' => true 与 openssl genrsa -des3 完全相同。

As far as I know, specifying the encrypt_key as true in $configargs (like you did in your code example) already encrypts using Triple DES. If you check the output of $keyout, you will see:

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

This is true whether you use a sha1, md5, sha256 or any other digests.

In other words, 'encrypt_key' => true does exactly the same as openssl genrsa -des3.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文