【问题标题】:openssl x509 & rsa in perl - Net::SSLeay?perl 中的 openssl x509 & rsa - Net::SSLeay?
【发布时间】:2015-01-31 10:07:03
【问题描述】:

我正在尝试使用正确的库在 perl 中进行以下两个调用:

openssl x509 -noout -modulus -in server.crt | openssl md5

openssl rsa -noout -modulus -in server.key | openssl md5

这些是最佳选择吗: CPAN_Crypt_OpenSSL_X509 CPAN_Crypt_OpenSSL_RSA

或者可以在 Net::SSLeay 中完成吗?

指向示例的指针肯定会有所帮助。

【问题讨论】:

  • 这些命令对我来说没有多大意义。你想用这些命令得到什么?
  • 如果您的目标是检查私钥是否与证书中的公钥匹配,您可以简单地将它们一起使用来构建测试服务器。除此之外 Crypt::OpenSSL::X509 有一个 modules 功能和 Crypt::OpenSSL::RSA 一个 get_key_parameters 这可能会帮助你。
  • 没有实际启动服务器我想验证这些,这就是我问的原因。

标签: perl encryption openssl rsa x509certificate


【解决方案1】:

您可以只比较模数的十六进制字符串以获得相同的结果,而无需进行摘要。 Crypt::OpenSSL::X509Crypt::OpenSSL::RSA 有必要的方法来做到这一点:

my $x509_cert = Crypt::OpenSSL::X509->new_from_string('...');
my $pkey = Crypt::OpenSSL::RSA->new_private_key('...');

my ($key_modulus) = $pkey->get_key_parameters;
if ($x509_cert->modulus eq $key_modulus->to_hex) {
  # same modulus
}
else {
  # different
}

【讨论】:

    猜你喜欢
    • 2018-11-27
    • 2013-03-05
    • 1970-01-01
    • 2013-03-10
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    相关资源
    最近更新 更多