python实现的Caesar加解密算法详解编程语言

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

(0)
上一篇 2021年7月18日
下一篇 2021年7月18日

相关推荐

发表回复

登录后才能评论