2010-12-23 147 views
2

嗨,我正在搞Crypt::RSA perl模塊。我已經獲得了模塊來加密一個字符串(密碼),然後將其導出到一個名爲「test.key」的文件。但是,我發現密碼不好,如果我無法得到用於加密字符串的密鑰第一名。如何讓Crypt :: RSA顯示已生成的公鑰和私鑰?

當我試圖讓它只是打印標量$ 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

文檔可以在CPAN找到,並應將系統(perldoc Crypt::RSA)上安裝。

下面是相關鏈接:http://search.cpan.org/dist/Crypt-RSA/

從那裏,你想看到描述該方法基於接口的關鍵變量以下頁面。

對於未來,請把你的腳本將產生精確的輸出。在這種情況下,輸出可能包含您的答案(您嘗試打印的對象的模塊名稱)。然後,文檔只是一個搜索。

在這種情況下,它可能是這樣的:

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

當我輸入perldoc到終端我收到「您需要安裝的perldoc包」,這讓我覺得沒有一個文檔將被安裝因爲perl-doc模塊沒有安裝。 – ianc1215 2010-12-23 02:11:48