Ich versuche, meine Daten mit Crypt::OpenSSL::RSA
in Perl zu unterzeichnen. Das ist mein CodeSigning Daten mit Crypt :: OpenSSL :: RSA in Perl
use Crypt::OpenSSL::RSA;
open $privfh, '>:encoding(UTF-8)', 'private_key';
$rsa = Crypt::OpenSSL::RSA->generate_key(1024);
$key_string=$rsa->get_private_key_string();
print $privfh $key_string;
$rsa_priv = Crypt::OpenSSL::RSA->new_private_key($key_string);
$rsa_pub = $rsa->get_public_key_string();
$plaintext="hello";
$signature = $rsa_priv->sign($plaintext);
print "Signed correctly\n" if ($rsa->verify($plaintext, $signature));
Dieses Programm läuft gut und ich bin in der Lage, Daten korrekt zu signieren. Aber das Problem ist, dass ich eine Menge von Daten zu unterschreiben, damit ich key_string
in eine Datei schreibe, so dass ich es wieder verwenden kann und wieder, aber das Problem ist, wenn ich versuche, es zu benutzen, wieder folgenden Code
use Crypt::OpenSSL::RSA;
open FILE ,'<','private_key';
{
local $/;
$keystring=<FILE>;
}
print "$keystring\n";
$rsa_priv = Crypt::OpenSSL::RSA->new_private_key($key_string);
es ist Fehler werfen und nicht $rsa_priv
generieren. Der vom Programm angegebene Fehler ist RSA.xs:178: OpenSSL error: no start line at testperl.pl line 11, <FILE> line 1
. Was soll ich tun, damit ich wieder und wieder signieren kann, nachdem ich den Schlüssel nur einmal generiert habe?
Es gibt nichts neues aufgedruckt mit 'verwenden Data :: Dumper 'print Dumper $ keystring;'. Es ist dasselbe wie meine einfache Druckanweisung in beiden Codes. – shivams
Verwenden Sie immer 'use strict; Verwenden Sie Warnungen; '. –
Es könnte sein, dass am Anfang der Datei ein beschädigtes Zeichen vorhanden ist. Extra Platz oder Linie. –