如何让Crypt :: RSA显示已生成的公钥和私钥?

时间:2010-12-23 00:48:05

标签: perl encryption

您好我在使用Crypt::RSA perl模块。我已经让模块加密一个字符串(密码),然后将其导出到一个名为“test.key”的文件但是我觉得如果我无法获得用于加密字符串的密钥,那么密码就不好了。第一名。

当我尝试让它只是打印标量$ private和$ public时,我得到一个HASH(0x00000)看起来输出。所以到目前为止我可以收集这意味着密钥存储在HASH中,问题是我不知道为了打印有问题的密钥而创建的HASH的名称。它说Crypt :: RSA的参数可以在我的系统中显然不存在的手册页中找到。

有什么想法吗?

以下是我拆开的示例代码。

#!/usr/bin/perl

use strict;

use warnings;
use Crypt::RSA;
my $rsa = new Crypt::RSA;
my $message = "hello world";
my ($public, $private) = $rsa->keygen ( 
    #Identity  => '',
    Size      => 1024,  
    #Password  => '', 
    Verbosity => 1,
    ) or die $rsa->errstr();

my $cyphertext = $rsa->encrypt ( 
    Message    => $message,
    Key        => $public,
    Armour     => 1,
    ) or die $rsa->errstr();

my $plaintext = $rsa->decrypt ( 
    Cyphertext => $cyphertext, 
    Key        => $private,
    Armour     => 1,
    ) or die $rsa->errstr();

print $public;

print $private;

open FILE, ">", "test.key" or die $!;
print FILE "$cyphertext\n";
close FILE;

1 个答案:

答案 0 :(得分:1)

模块的文档可以在CPAN找到,并且应该安装在您的系统上(perldoc Crypt::RSA)。

以下是相关链接:http://search.cpan.org/dist/Crypt-RSA/

从那里,您希望看到以下页面描述基于方法的关键变量接口。

将来,请发布您的脚本生成的确切输出。在这种情况下,输出可能包含您的答案(您尝试打印的对象的模块名称)。然后文档只是一个搜索。

在这种情况下,它可能类似于:

print $_->serialize, "\n" for $public, $private;