2016-06-29 11 views
0

Ich versuche, einen öffentlichen und privaten Schlüssel mit Passphrase-Schutz in Perl zu generieren, aber ich habe nichts nützliches gefunden.Wie erstelle ich Passphrase-geschützte RSA-Schlüssel in Perl

Bis jetzt habe ich diesen Link http://search.cpan.org/~vipul/Crypt-RSA-1.57/lib/Crypt/RSA.pm gefunden, der sehr vielversprechend scheint. Ich kann jedoch meine Nachricht ohne Passphrase entschlüsseln, obwohl ich sie mit einer Passphrase erstellt habe.

Der andere Link war dieser http://www.perlmonks.org/?node_id=903458 aber wenn ich meine Schlüssel (um sie in der DB zu speichern) erstellen kann ich immer noch entschlüsseln, ohne eine Passphrase zu verwenden.

Zusammenfassend, ich brauche eine Bibliothek, die es mir ermöglicht, Text mit privaten Schlüsseln mit einer Passphrase für beide zu verschlüsseln.

Danke für Ihre Hilfe!

PD: Bitte keine PGP-Verschlüsselung.

UPDATE

Hier ist ein Stück Code, der nicht wie erwartet funktionieren:

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

Bitte hinzufügen * tatsächlicher Perl-Code *, von dem Sie glauben, dass er die Fähigkeit aufweist, verschlüsselten Inhalt ohne eine Passphrase zu entschlüsseln. Sei so * spezifisch * wie möglich. –

+0

Hallo Mike, ich habe einen Ausschnitt hinzugefügt, um meinen Standpunkt zu beweisen. Vielen Dank! – Ramzendo

Antwort

2

Das Passwort für RSA wird nur in Bezug auf das Speichern oder Lesen der Schlüssel auf der Festplatte verwendet. An keinem Punkt Ihrer Operation haben Sie den privaten Schlüssel auf der Festplatte gespeichert, so dass er bereits im Speicher unverschlüsselt ist.

Aus der privaten Schlüssel Dokumentation, können Sie sehen, wie es auf der Disc verstecken und speichern (das Objekt $ master_private Sie haben bereits ein Objekt dieses Typs) mit einem Ausschnitt aus dem

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

+0

Danke Tim Tom! endlich habe ich es funktioniert! – Ramzendo

Verwandte Themen