#!/usr/bin/perl use warnings; use strict; use Crypt::CBC; my $iv = '$KJ^#(}q'; my $key = 'secret_foo'; ##----------- encryption ------------ my $cipher = Crypt::CBC->new( { 'key' => $key, 'cipher' => 'Blowfish', 'padding' => 'standard', 'iv' => $iv } ); open( INF, "< $0" ) || die; open( OUTF, ">$0.crypt" ) || die; $cipher->start('encrypting'); while ( read( INF, my $buf, 1024 ) ) { print OUTF $cipher->crypt($buf); } print OUTF $cipher->finish; close(INF); close(OUTF); ##-------------------------- decryption -------------------- my $cipher1 = Crypt::CBC->new( { 'key' => $key, 'cipher' => 'Blowfish', 'padding' => 'standard', 'iv' => $iv } ); open( INF1, "< $0.crypt" ) || die; open( OUTF1, ">$0.decrypt" ) || die; $cipher->start('decrypting'); while ( read( INF1, my $buf, 1024 ) ) { print OUTF1 $cipher->decrypt($buf); } print OUTF1 $cipher->finish; close(INF1); close(OUTF1);