所以,我正在尝试使用DSA加密字符串。我创建了一个私钥和公钥。现在我想加密字符串“nawan”。这是我的代码:
#!/usr/bin/perl
use strict;
use warnings;
use Crypt::OpenSSL::DSA;
my $privkey = "priv_key.key";
my $pubkey = "pub_key.crt";
my $message = "nawan";
my $dsa_priv = Crypt::OpenSSL::DSA->read_priv_key($privkey);
my $sig = $dsa_priv->sign($message);
my $dsa_pub = Crypt::OpenSSL::DSA->read_pub_key($pubkey);
my $valid = $dsa_pub->verify($message, $sig);
当我运行我的代码时,它会显示如下错误:
无法在./dsa.pl第13行的未定义值上调用方法“sign”。
有什么想法吗?我是Perl的新人。
更新
我刚发现原因无法调用方法“签名”,因为read_priv_key()
无法读取文件。我刚刚意识到我用密码短语(aes128)创建了私钥。现在我想知道Crypt::OpenSSL::DSA
如何读取带有密码的私钥。有什么建议吗?