2016-06-29 4 views
0

私はPerlでパスフレーズ保護の公開鍵と秘密鍵を生成しようとしていますが、何も役に立たないとは思いません。Perlでパスフレーズ保護されたRSA鍵を生成する方法

今まで私はこのリンクhttp://search.cpan.org/~vipul/Crypt-RSA-1.57/lib/Crypt/RSA.pmが非常に有望であると判断しました。しかし、パスフレーズを付けずにメッセージを復号化することはできますが、パスフレーズでメッセージを作成しています。

他のリンクはhttp://www.perlmonks.org/?node_id=903458でしたが、キーを作成して(データベースに保存するために)、パスフレーズを使用せずに復号化することができます。

要約すると、両方のパスフレーズを使用して秘密鍵を使用してテキストを暗号化できるライブラリが必要です。

ありがとうございました!

PD:PGP暗号化をしないでください。

use strict; 
use warnings; 
use Data::Dumper; 
use 5.010; 
use Crypt::RSA; 

my $rsa = new Crypt::RSA; 

my ($master_public, $master_private) = $rsa->keygen(
    Identity => "Someone", 
    Size  => 1024, 
    Password => "this is a password or passphare", 
) or die $rsa->errstr(); 

my $cyphertext = $rsa->encrypt (
    Message => "My Message that I want to encrypt", 
    Key  => $master_public, 
    Armour  => 1, 
) or die $rsa->errstr(); 

my $text = $rsa->decrypt (
    Cyphertext => $cyphertext, 
    Key  => $master_private, 
    Armour  => 1, 
    # Here I expect to add the user's passphrase 
) or die $rsa->errstr(); 

say $text; 
+0

のスニペットを追加してください。 *実際のPerlコード*は、「パスフレーズなしで暗号化されたコンテンツを復号化する」能力を実証していると信じています。 *できるだけ具体的*にしてください。 –

+0

こんにちはマイク、私は私のポイントを証明するスニペットを追加しました。ありがとう! – Ramzendo

答えて

2

RSAのパスフレーズのみを保存したり、ディスク上のキーを読むことに関してで使用されます。

UPDATEここ

は期待通りに動作しないコードのPICEです。あなたの操作のどの時点でも秘密鍵はディスクに保存されていないので、すでにメモリに暗号化されていません。あなたはディスクにそれを隠して保存する方法を見ることができ、秘密鍵のドキュメントから

、(あなたが持っているの$ master_privateオブジェクトがすでにその型のオブジェクトである)

https://metacpan.org/pod/Crypt::RSA::Key::Private

+0

おかげさまでティム・トム!ついにそれが効いた! – Ramzendo

関連する問題