On 6/20/07, oryann9 <[EMAIL PROTECTED]> wrote:
snip
> > my $plaintext = do { local $/ = undef; <> };
> > my $pad = "X" x length $plaintext;
> >
> > my $encryptedtext = $plaintext      ^ $pad;
snip
I like it to, but dont understand how it is
encrypting.
Will you kindly expalin?

$plaintext is the contents of the file(s) passed in on the commandline
(or stdin if none are passed in).

$pad is the character X repeated until there are as many Xs as
characters in $plaintext

$encryptedtext is the result of xor'ing $plaintext with pad.

xor has the following truth table
A B R
0 0 0
0 1 1
1 0 1
1 1 0

so if I have 01101100 and I xor it with 01110001 I get 00011101.  This
is the "encrypted value".  If I xor the result 00011101 with the key
01110001 I get the original value back.

01101100 plaintext
01110001 key
00011101 "encrypted"

00011101 "encrypted"
01110001 key
01101100 plaintext

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to