Falke: CBC überschreibt Daten

Hallo liebes Forum,

ich habe ein Problem, was auch sonst ;)
Ich Verschlüssele meine Daten mit Crypt::CBC klappt soweit auch alles gut solange ich nur eine Variable oder den Text so eingebe. Wenn ich aber mehrere Variablen sowie unten dargestellt verschlüsseln will überschreibt er die vorigen Daten. Also wenn $vareins = "Test" und $varzwei = "Hi" steht am Ende nicht TestHi so wie es sollte sondern Hist. Kann mir mal jemand sagen was ich falsch mach? Schonmal schönen Dank im vorraus.

sub lic_schreiben{
    my $licpfad = shift(@_);
    my $wandeln = shift(@_);
    my $cipher;
    my $ciphertext;
    my $OK;

$cipher = Crypt::CBC->new( {'key'           => 'is egal',  #Verschlüsselung
                              'cipher'          => 'Blowfish',
                              'iv'              => '$KJh#(}q',
                              'regenerate_key'  => 0,   # default true
                              'padding'         => 'space',
                              'prepend_iv'      => 0
                           });
    $ciphertext = $cipher->encrypt("$vareins$varzei$usw");
    $OK = open(DATEI_HANDLE, ">$licpfad\ecp.lic");
    print DATEI_HANDLE $ciphertext;
    close DATEI_HANDLE;
print "#####################################################################\n";
print "#                                                                   #\n";
print "#          Der Lizenzschluessel wurde erfolgreich erstellt !        #\n";
print "#                                                                   #\n";
print "#####################################################################\n";
}

Mfg Jasper

  1. Hi Falke,

    $ciphertext = $cipher->encrypt("$vareins$varzei$usw");

    bist Du sicher, daß Du in dieser Zeile alle Variablennamen korrekt geschrieben hast?

    Viele Grüße
          Michael

    --
    T'Pol: I apologize if I acted inappropriately.
    V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
    (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
  2. Hallo Falke,

    $ciphertext = $cipher->encrypt("$vareins$varzei$usw");

    Vielleicht so:

    $hilfs_string = $vareins.$varzwei.$usw;
    $ciphertext = $cipher->encrypt($hilfs_string);

    mfg Siechfred

    --
    Jedem ist klar, dass man einen Tintenfleck nicht mit Tinte und einen Ölfleck nicht mit Öl wegwischt. Warum wird dann immer wieder versucht, Blut mit Blut wegzuwischen? (B.v.Suttner)
    ss:| zu:| ls:# fo:| de:[ va:| ch:? n4:& rl:? br:& js:| ie:% fl:( mo:}