If you have a scenario when encryption is necessary for your data, a perl script utilizing the Crypt::Blowfish module to get the job done may be your answer. The code is pretty straight foward however it has an additional padding section which helps you negotiate data not matching your designated encryption key size.
The first script encrypts and pads data from a plaintext.txt file using Crypt::Blowfish into a ciphertext.txt file. The second script decrypts the cipher and writes it to a file.
blowfish.pl
#!/usr/bin/perl
use Crypt::Blowfish;
$key = '12345678123456781234567812345678';
$cipher = Crypt::Blowfish->new($key);
open (PLAINTEXT, "plaintext.txt");
while (read(PLAINTEXT, $block, 8)) {
$len = length $block;
$size += $len;
# Add padding if necessary
$block .= "\000"x(8-$len) if $len < 8;
$ciphertext .= $cipher->encrypt($block);
}
# Record the size of the plaintext, so that the recipient
# knows how much padding to remove.
open (CIPHERTEXT, ">ciphertext.txt");
print CIPHERTEXT "$size\n";
print CIPHERTEXT $ciphertext;
decryptblowfish.pl
#!/usr/bin/perl
use Crypt::Blowfish;
$key = '12345678123456781234567812345678';
$cipher = Crypt::Blowfish->new($key);
open (CIPHERTEXT, "ciphertext.txt");
$size = ;
while (read(CIPHERTEXT, $ct, 8)) {
$pt .= $cipher->decrypt($ct);
}
# Write only $size bytes of the output; ignore padding.
open (PLAINTEXT, ">decrypted.txt");
print PLAINTEXT substr($pt, 0, $size);
“->” is “->” ?
Thank’s. Nice tutorial
Sorry for the wacky characters, I upgraded wordpress and they got messed up. I fixed it now. Glad you like the tutorial.