python實現的Caesar加解密演算法

來源:互聯網
上載者:User

標籤: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加解密演算法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.