#!/usr/bin/perl
while (<>) {
$str = $_;
$random = random_string(length($str));
$crypt = $str ^ $random;
$restored = $crypt ^ $random;
print "Message string: $str\n";
print "Random string: $random\n";
print "Crypted string: $crypt\n";
print "Restored string: $restored\n";
print "\n";
}
#-------------------------------------------------
# a random string of the same length as the
# message is generated.. thats than
# XOR'ed, character-by-character, on the
# message, the result is mixed but when
# you XOR this mix with the same random string,
# you get the original message back
#-------------------------------------------------
sub random_string {
my $ret;
for (1 .. $_[0]) { $ret .= chr(rand 256) }
return $ret;
}