Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hi, I'm seeking to use the RC4 module. I have it encrypting and decrypting a string but I receive encrypted text in forms like this Pui How do I display this as regular viewable characters? Many thanks...

Replies are listed 'Best First'.
Re: Converting RC4 Encrypted Strings
by cjf (Parson) on Jul 22, 2002 at 02:11 UTC

    I'm sure there has to be a better way to do this (read: this could be way off the mark), but assuming you're referring to Crypt::RC4, try the following:

    use Crypt::RC4; my $key = "abcdefghijklm"; my $plaintext = "Hello, World!"; my $encrypted = RC4($key, $plaintext); print $encrypted, "\n"; my @characters; for (split //, $encrypted) { push @characters, ord($_); } print @characters, "\n"; $encrypted = ""; for (@characters) { $encrypted .= chr($_); } print $encrypted, "\n"; my $decrypted = RC4($key, $encrypted); print $decrypted, "\n";

    This basically just uses ord to return the numeric values of the encrypted string and place them in @characters. Probably not what you're looking for, but it can't hurt (can it? ;). I'm also curious, why exactly do you want to do this?

Re: RC4 question
by zentara (Cardinal) on Jul 22, 2002 at 16:39 UTC
    You could use MIME::Base64.
    #!/usr/bin/perl use strict; use warnings; use Crypt::RC4; use MIME::Base64; my $key = "abcdefghijklm"; my $plaintext = "Hello, World!"; my $encrypted = RC4($key, $plaintext); $encoded = encode_base64($encrypted); $decoded = decode_base64($encoded); print "$encoded\n"; print "$decoded\n"; my $decrypted = RC4($key, $decoded); print $decrypted\n";