#!/usr/bin/python # ----------------------------------------------------------------------------- # Implements a Vigenère square; shifts input file by all possible values # # (c) 2004 Jason Bittel # ----------------------------------------------------------------------------- import os import sys import string # ----------------------------------------------------------------------------- class g: alpha = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', \ 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', \ 'U', 'V', 'W', 'X', 'Y', 'Z' ] # ----------------------------------------------------------------------------- def parseFile(infile, shift): """ """ str = "" try: input = open(infile) for line in input: for char in line: char = string.upper(char) if char.isalpha(): index = g.alpha.index(char) + shift if index > 25: index -= 26 str += g.alpha[index] else: str += char print str, " [" + repr(shift) + "]" input.close() except IOError, err: sys.stderr.write("Error: unable to access %s: %s\n" % (infile, err.strerror)) sys.exit() # ============================================================================= def main(): """ """ if not len(sys.argv) == 2: # Check for command line arguments print "Usage: %s [ filename ]\n" % os.path.basename(sys.argv[0]) sys.exit(0) for n in range (1, 26): parseFile(sys.argv[1], n) if __name__ == "__main__": main()