use Crypt::CBC; use Storable qw(freeze thaw); use MIME::Base64 qw(encode_base64 decode_base64); my $priv_key = "fdslgjlsdgjl flds"; my $encrypt_method = "Crypt::Blowfish"; my $cipher = new Crypt::CBC($priv_key,$encrypt_method); sub save { my $data = shift; #data struct you want to save return encode_base64($cipher->encrypt(freeze($data)),""); } sub reload { my $string = shift; #string you got back from form return thaw($cipher->decrypt(decode_base64($string))); }