#!/usr/bin/perl
use warnings;
use strict;
use Crypt::CBC;
my $KEY = 'secret_foo';
encryptFile( $0 );
decryptFile( "$0.enc");
sub encryptFile {
my $filename = shift;
$| = 1;
print "Encrypting $filename...";
$| = 0;
my $cipher = Crypt::CBC->new(
-key => $KEY,
-cipher => 'Blowfish',
-padding => 'space',
-add_header => 1
);
$cipher->start( 'encrypting' );
open( ORGINAL, "<./$filename" );
open( ENCRYPTED, ">./$filename.enc" );
binmode ORGINAL;
binmode ENCRYPTED;
while ( sysread( ORGINAL, my $buffer, 1024 ) ) {
syswrite( ENCRYPTED, $cipher->crypt( $buffer ) );
}
#$cipher->finish; #wrong
syswrite( ENCRYPTED, $cipher->finish );
close ENCRYPTED;
close ORGINAL;
print "done.\n";
}
###################################################################
sub decryptFile {
my $filename = shift;
$| = 1;
print "Decrypting $filename...";
$| = 0;
my $cipher = Crypt::CBC->new(
-key => $KEY,
-cipher => 'Blowfish',
-padding => 'space',
-add_header => 1
);
$cipher->start( 'decrypting' );
open( ENCRYPTED, "<./$filename" );
open( DECRYPTED, ">./$filename.decrypted" );
binmode ENCRYPTED;
binmode DECRYPTED;
while ( sysread( ENCRYPTED, my $buffer, 1024 ) ) {
syswrite( DECRYPTED, $cipher->crypt( $buffer ) );
}
# $cipher->finish; #wrong
syswrite( DECRYPTED, $cipher->finish );
close DECRYPTED;
close ENCRYPTED;
print "done.\n";
}
I'm not really a human, but I play one on earth.
flash japh
|