#!/usr/bin/perl # xor.pl - Don Yang (uguu.org) # # 09/04/03 die "$0 \n" unless $#ARGV == 0; $key = $ARGV[0]; print STDERR "key = $key\n"; $err = 0; %char = (); while( $line = ) { $line =~ s/\s//g; $line =~ s!/M/sub/!/M/sub /!; $line =~ s!/k//!/k/ /!; foreach $i ($line =~ /./g) { $c = ord($i) ^ $key; if( $c <= 32 || $c > 126 ) { $err++; $char{$i}++; } $c = chr($c); if( index('\\"$%', $c) >= 0 ) { $err++; $char{$i}++; } print $c; } print "\n"; } print STDERR "err = $err"; if( $err > 0 ) { foreach $i (sort {$a cmp $b} keys %char) { print STDERR " $i:$char{$i}"; } } print STDERR "\n";