Как заставить Crypt :: RSA показывать свои открытые и закрытые ключи, которые были сгенерированы? - PullRequest
2 голосов
/ 23 декабря 2010

Привет, я возился с модулями 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 Ответ

1 голос
/ 23 декабря 2010

Документацию для модулей можно найти в CPAN и установить в вашей системе (perldoc Crypt::RSA).

Вот соответствующая ссылка: http://search.cpan.org/dist/Crypt-RSA/

Оттуда вы хотите увидеть следующие страницы, которые описывают основанный на методе интерфейс с ключевыми переменными.

В будущем, пожалуйста, опубликуйте точный результат, полученный вашим скриптом.В этом случае есть вероятность, что вывод содержит ваш ответ (имена модулей объектов, которые вы пытаетесь распечатать).Тогда документация - это просто поиск.

В этом случае, вероятно, что-то вроде:

print $_->serialize, "\n" for $public, $private;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...