#!/usr/bin/perl use Crypt::CBC; use Crypt::Rijndael; use Digest::MD5 qw(md5_hex md5_base64); use MIME::Base64; use URI::Escape; sub encrypt{ my $data = shift; $data = &get16($data); my $key = "HELLOKEY"; my $key_size = 16; my $key_hash = md5_hex($key); $AESKEY = substr($key_hash,0,$key_size); print "AESKEY->".$AESKEY."\n"; my $iv= Crypt::CBC->random_bytes(16); my $cipher = Crypt::CBC->new( -key => $AESKEY, -cipher => 'Rijndael', -padding => 'rijndael_compat', -keysize => $keysize, -header => 'none', -iv =>$iv ); $iv = $cipher->get_initialization_vector(); my $encrypted = $cipher->encrypt($data); print "After encryption:$encrypted\n"; $encrypted = $iv.$encrypted; $encrypted = encode_base64($encrypted); print "After base 64 encoding:$encrypted\n\n"; $encrypted = uri_escape($encrypted); print "After url_encoding: $encrypted\n"; } &encrypt("test123");