AES-Verschlüsselung mit Perl
Das Programm verwendet die Module Crypt::CBC, Crypt::Rijndael und MIME::Base64, um eine AES-Verschlüsselung durchzuführen. Zunächst wird der Klartext, der verschlüsselt werden soll, und der geheime Schlüssel definiert. Der geheime Schlüssel ist ein 256-Bit-Schlüssel im Hexadezimalformat. Dann wird der Initialisierungsvektor (IV) definiert, der ein 128-Bit-IV im Binärformat ist.
Anschließend wird ein Crypt::CBC-Objekt erstellt, das den Rijndael-Algorithmus (AES) für die Verschlüsselung verwendet und dabei den geheimen Schlüssel und den IV berücksichtigt. Nach der Verschlüsselung des Klartexts mit diesem Code wird der verschlüsselte Text in Base64 kodiert, um ihn in eine druckbare Zeichenfolge umzuwandeln.
Das Programm gibt dann den verschlüsselten Text aus und führt die Entschlüsselung durch, indem es den verschlüsselten Text aus Base64 decodiert und den Verschlüsselungscode verwendet. Schließlich wird der entschlüsselte Klartext ausgegeben.
#!/usr/bin/perl
use Crypt::CBC;
use Crypt::Rijndael;
use MIME::Base64;
# Der Text, den Sie verschlüsseln möchten
my $klartext = "Dies ist eine geheime Nachricht.";
# Der geheime Schlüssel genau 32 Bytes = 256 Bit
my $schluessel = pack("H*", "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF");
# Initialisierungsvektor (IV) im Binärformat (genau 16 Bytes = 128 Bit)
my $iv = pack("H*", "0123456789ABCDEF0123456789ABCDEF");
# Erstellen eines Verschlüsselungscodes mit der Option "pbkdf2"
my $cipher = Crypt::CBC->new(
-cipher => 'Crypt::Rijndael',
-key => $schluessel,
-iv => $iv,
-header => 'none',
-padding => 'standard',
-keysize => 32, # 256-Bit-Schlüssel
-pbkdf => 'pbkdf2', # Verwendung von PBKDF2
);
# Verschlüsseln
my $geheimtext = $cipher->encrypt($klartext);
# Base64-Kodierung, um den verschlüsselten Text in eine druckbare Zeichenfolge umzuwandeln
$geheimtext = encode_base64($geheimtext);
print "Verschlüsselter Text: $geheimtext\n";
# Entschlüsseln
my $entschluesselter_text = $cipher->decrypt(decode_base64($geheimtext));
print "Entschlüsselter Text: $entschluesselter_text\n";
Perl-Module installieren
Falls es beim Ausführen des Programms zu einer Fehlermeldung kommt sind die notwendigen Perl-Module nicht installiert. Nachholen mit:
sudo su - apt update && apt install cpanminus -y cpanm Crypt::CBC cpanm Crypt::Rijndael
Siehe auch
metacpan.org/pod/base64 Base64-Daten kodieren und dekodieren
metacpan.org/pod/Crypt::CBC Verschlüsseln von Daten mit Cipher Block Chaining Mode
metacpan.org/pod/Crypt::Rijndael Crypt::CBC-konformes Rijndael-Verschlüsselungsmodul