Caesar算法是最简单的加解密算法…
# Caeser Cipher import sys,os MyCypher = 25 MyDict = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz `1234567890-=~!@#$%^&*()_+[]//;/',./{}|:"<>?' plaintext = 'Hello World!' cryptmsg = '' def encrypt(text, cypher): out_text = '' for e in text: x = e if (e in MyDict): idx = MyDict.find(e) idx = idx + cypher idx = idx % len(MyDict) x = MyDict[idx] out_text = "%s%c" % (out_text, x) return out_text def decrypt(msg, cypher): out_text = '' for e in msg: x = e if (e in MyDict): idx = MyDict.find(e) idx = idx - cypher + len(MyDict) idx = idx % len(MyDict) x = MyDict[idx] out_text = "%s%c" % (out_text, x) return out_text def ask_cypher(): user_input = raw_input('Input Cypher: ') return long(user_input) def ask_text(): user_input = raw_input('Input Text: ') return user_input def ask_action(): print '-----------------------' print '0 - Exit' print '1 - Encrypt' print '2 - Decrypt' print '-----------------------' user_input = raw_input('Select You Action: ') if user_input in ['0', '1', '2']: if user_input == '0': return 'exit' elif user_input == '1': return 'enc' elif user_input == '2': return 'dec' else: return 'exit' # --------------------------------------------------------------- # Program Start Here # --------------------------------------------------------------- MyCypher = ask_cypher() print 'Cypher: %d' % MyCypher for i in range(0, 100): action = ask_action() if action == 'dec': cryptmsg = ask_text() print decrypt(cryptmsg, MyCypher) elif action == 'enc': plaintext = ask_text() print encrypt(plaintext, MyCypher) else: print 'Exit!' break
执行后,输入密码(数字), 然后选择动作, 最后输入密文或原文, 就能得到原文或密文了.
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/8064.html