Skip to content

Instantly share code, notes, and snippets.

@nohe427
Last active August 31, 2015 18:10
Show Gist options
  • Save nohe427/d7d0d5d0132e57d8207d to your computer and use it in GitHub Desktop.
Save nohe427/d7d0d5d0132e57d8207d to your computer and use it in GitHub Desktop.
Thanks @AshleyDesktop for the update!
import random, unittest
def generateMagicKey():
magicKey = {}
list1 = ["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"]
list2 = ["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"]
while len(list2) > 0:
z = random.randint(0, len(list2)-1)
y = random.randint(0, len(list2)-1)
a, b = list1[z], list2[y]
magicKey[a], magicKey[b] = b, a
list1.remove(a)
list2.remove(a)
try: list2.remove(b)
except: pass
try: list1.remove(b)
except: pass
print "Your magic key is:\n"
print magicKey
return magicKey
def encrypt(word, magicKey):
stringBuild = ""
for i in word:
if i in magicKey.keys(): stringBuild += magicKey[i.lower()]
else: stringBuild += i
return stringBuild
def decrypt(word, magicKey):
stringBuild = ""
for i in word:
if i in magicKey.keys(): stringBuild += magicKey[i]
else: stringBuild += i
return stringBuild
class Test_phrases(unittest.TestCase):
s = "Sunshine, daisies, butter mellow, turn this stupid, fat rat yellow."
print(s)
magicKey = generateMagicKey()
newWord = encrypt(s, magicKey)
print(newWord)
def test_poem(self):
decrypted = decrypt(self.newWord, self.magicKey)
print(decrypted)
self.assertEqual(decrypted, self.s)
if __name__ == "__main__":
unittest.main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment