Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

Purdy (2383)

Purdy
  jasonNO@SPAMpurdy.info
http://purdy.info/
AOL IM: EmeraldWarp (Add Buddy, Send Message)
Yahoo! ID: jpurdy2 (Add User, Send Message)

Bleh - not feeling creative right now. You can check me out on PerlMonks [perlmonks.org].

Journal of Purdy (2383)

Thursday November 01, 2001
03:35 PM

Crypt::RC4

[ #1137 ]
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 <a href="http://www.perlmonks.org/index.pl?node_id=87452&lastnode_id=122640">broqua int</a>!
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.