def main(): random.seed(42) # set the random "seed" to a static value for i in range(20): # run 20 tests # Generate random messages to test. # The message will have a random length message = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' * random.randint(4,40) # Convert the message string to a list to shuffle it. message = list(message) random.shuffle(message) message = ''.join(message) # Convert list to string print('Test #%s: "%s..."' % (i+1, message[:50])) # Check all possible keys for each message. for key in range(1, len(message)): encrypted = transEncrypt.encryptMessage(key, message) decrypted = transDecrypt.decryptMessage(key, encrypted) # If message and decrypted don't match, display an error message # and quit. if message != decrypted: print('Mismatch with key %s and message %s.' % (key, message)) print(decrypted) sys.exit() print('Transposition cipher test passed.')
def main(): random.seed(42) # set the random "seed" to a static value for i in range(20): # run 20 tests # Generate random messages to test. # The message will have a random length message = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' * random.randint(4, 40) # Convert the message string to a list to shuffle it. message = list(message) random.shuffle(message) message = ''.join(message) # Convert list to string print('Test #%s: "%s..."' % (i + 1, message[:50])) # Check all possible keys for each message. for key in range(1, len(message)): encrypted = transEncrypt.encryptMessage(key, message) decrypted = transDecrypt.decryptMessage(key, encrypted) # If message and decrypted don't match, display an error message # and quit. if message != decrypted: print('Mismatch with key %s and message %s.' % (key, message)) print(decrypted) sys.exit() print('Transposition cipher test passed.')
def main(): inputFilename = input('File name: ') # Be careful. Tis will overwrite that file myMode = input('Encrypt or decrypt: ') myMode = myMode.lower() myKey = int(input('Key: ')) # This sets the file name if myMode == 'encrypt': outputFilename = inputFilename[:len(inputFilename) - 4] + '.encrypted.txt' if myMode == 'decrypt': outputFilename = inputFilename[:len(inputFilename) - 4] + '.decrypted.txt' # If the file does not exist, terminate early if not os.path.exists(inputFilename): print('The file %s does not exist. Quitting...' % (inputFilename)) sys.exit() # If the output file already exists, give the user a chance to quit. if os.path.exists(outputFilename): print('This will overwrite the file %s. (C)ontinue or (Q)uit?' % (outputFilename)) response = input('> ') if not response.lower().startswith('c'): sys.exit() # Read in the message from the input file fileObj = open(inputFilename) content = fileObj.read() fileObj.close() print('%sing...' % (myMode.title())) # Measure how long it takes startTime = time.time() if myMode == 'encrypt': translated = encryptMessage(myKey, content) elif myMode == 'decrypt': translated = decryptMessage(myKey, content) totalTime = round(time.time() - startTime, 2) print('%sion time: %s seconds' % (myMode.title(), totalTime)) # write out the translated message to the output file. outputFileObj = open(outputFilename, 'w') outputFileObj.write(translated) outputFileObj.close() outputFilename = outputFilename print('Done %sing %s (%s characters).' % (myMode, inputFilename, len(content)))