238 http://inventwithpython.com/hacking
Email questions to the author: [email protected]
if keyList != lettersList:
sys.exit('There is an error in the key or symbol set.')
def encryptMessage(key, message):
return translateMessage(key, message, 'encrypt')
def decryptMessage(key, message):
return translateMessage(key, message, 'decrypt')
def translateMessage(key, message, mode):
translated = ''
charsA = LETTERS
charsB = key
if mode == 'decrypt':
For decrypting, we can use the same code as encrypting. We
just need to swap where the key and LETTERS strings are used.
charsA, charsB = charsB, charsA
loop through each symbol in the message
for symbol in message:
if symbol.upper() in charsA:
encrypt/decrypt the symbol
symIndex = charsA.find(symbol.upper())
if symbol.isupper():
translated += charsB[symIndex].upper()
else:
translated += charsB[symIndex].lower()
else:
symbol is not in LETTERS, just add it
translated += symbol
return translated
def getRandomKey():
key = list(LETTERS)
random.shuffle(key)
return ''.join(key)
if name == 'main':
main()