#!/usr/bin/perl use warnings; use strict; use Crypt::CBC; my $iv = '$KJh#(}q'; my $key = 'secret_foo'; ##----------- encryption ------------ my $cipher = Crypt::CBC->new( {'key' => $key, 'cipher' => 'Blowfish', 'padding' => 'standard', 'iv' => $iv, }); open(INF, "< wtest" ) || 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);