Matt Owen

source code for "files/pe/pe_059.pl"

return to portfolio
  1.  #!/usr/bin/perl
  2.  
  3.  use strict;
  4.  use warnings;
  5.  use matrix;
  6.  
  7.  #
  8.  open CIPHER, "cipher1.txt";
  9.  
  10.  #
  11.  my (@letters) = split /,/, join '', <CIPHER>;
  12.  
  13.  my ($code) = '';
  14.  my ($i) = 0;
  15.  
  16.  #
  17.  for my $l (ord('a')..ord('z')) {
  18.   for my $m (ord('a')..ord('z')) {
  19.   for my $r (ord('a')..ord('z')) {
  20.   my ($c) = 0;
  21.   my (@key) = ($l, $m, $r);
  22.   my (@decrypted);
  23.  
  24.   push @decrypted, $_ ^ $key[$c++ % 3] for (@letters);
  25.   $code = join '', map { chr $_ } @decrypted;
  26.   $i++;
  27.   print "<<<<<<\n$code\n>>>>>>\n\n" if $code =~ m/the/i && $code =~ m/and/i;
  28.   }
  29.   }
  30.  }
  31.  
  32.  #
  33.  OUT: close CIPHER;