use Crypt::RC4; sub nice_encrypt { my($val, $key) = @_; return join '', map { sprintf('%02x', ord()) } split //, RC4($key, $val); } sub nice_decrypt { my($val, $key) = @_; return RC4($key, join '', map { chr(hex($_)) } $val =~ /../g); } my $encstr = nice_encrypt("foobar", 123); my $decstr = nice_decrypt($encstr, 123); print "$encstr\n$decstr\n"; __END__ output - 359fd0e08406 foobar