Crypt::RC4

Purdy on 2001-11-01T20:35:37

The fine chaps @ Perlmonks.org helped me with this. I needed a short encryption string and Crypt::RC4 fit the bill. I only had a 6 digit id that needed encryption, though. I haven't tested it with longer strings.

Also, Crypt::RC4 produces some bytes that aren't web-friendly. Here's some code that you can slap into a centralized script to get around that, if you need it:

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

Code courtesy of broquaint!