標籤:python 密碼
Caesar演算法是最簡單的加解密演算法...
# Caeser Cipherimport sys,osMyCypher = 25MyDict = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz `[email protected]#$%^&*()_+[]\\;\',./{}|:"<>?'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_textdef 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_textdef ask_cypher(): user_input = raw_input('Input Cypher: ') return long(user_input)def ask_text(): user_input = raw_input('Input Text: ') return user_inputdef 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' % MyCypherfor 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
執行後,輸入密碼(數字), 然後選擇動作, 最後輸入密文或原文, 就能得到原文或密文了.
python實現的Caesar加解密演算法