MHuiG

「看庭前花开花落,望天上云卷云舒」

Baconian

# Python Baconian

## Baconian 加密

Baconian.py

    # coding:utf8
    import re
    alphabet = ['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']
    first_cipher = ["aaaaa","aaaab","aaaba","aaabb","aabaa","aabab","aabba","aabbb","abaaa","abaab","ababa","ababb","abbaa","abbab","abbba","abbbb","baaaa","baaab","baaba","baabb","babaa","babab","babba","babbb","bbaaa","bbaab"]
    second_cipher = ["aaaaa","aaaab","aaaba","aaabb","aabaa","aabab","aabba","aabbb","abaaa","abaaa","abaab","ababa","ababb","abbaa","abbab","abbba","abbbb","baaaa","baaab","baaba","baabb","baabb","babaa","babab","babba","babbb"]
    def encode():
        upper_flag = False # 用于判断输入是否为大写
        string = input("please input string to encode:\n")
        if string.isupper():
            upper_flag = True
            string = string.lower()
        e_string1 = ""
        e_string2 = ""
        for index in string:
            for i in range(0,26):
                if index == alphabet[i]:
                    e_string1 += first_cipher[i]
                    e_string2 += second_cipher[i]
                    break
        if upper_flag:
            e_string1 = e_string1.upper()
            e_string2 = e_string2.upper()
        print ("first encode method result is:\n"+e_string1)
        print ("second encode method result is:\n"+e_string2)
        return

    def decode():
        upper_flag = False  # 用于判断输入是否为大写
        e_string = input("please input string to decode:\n")
        if e_string.isupper():
            upper_flag = True
            e_string = e_string.lower()
        e_array = re.findall(".{5}",e_string)
        d_string1 = ""
        d_string2 = ""
        for index in e_array:
            for i in range(0,26):
                if index == first_cipher[i]:
                    d_string1 += alphabet[i]
                if index == second_cipher[i]:
                    d_string2 += alphabet[i]
        if upper_flag:
            d_string1 = d_string1.upper()
            d_string2 = d_string2.upper()
        print ("first decode method result is:\n"+d_string1)
        print ("second decode method result is:\n"+d_string2)
        return

    if __name__ == '__main__':

        while True:
            print ("\t*******Bacon Encode_Decode System*******")
            print ("input should be only lowercase or uppercase,cipher just include a,b(or A,B)")
            print ("1.encode\n2.decode\n3.exit")
            s_number = input("please input number to choose\n")
            if s_number == "1":
                encode()
                input()
            elif s_number == "2":
                decode()
                input()
            elif s_number == "3":
                break
            else:
                continue

## Baconian 解密

decode.py

    # -*- coding: utf-8 -*-
    import re
    class Baconian():
        alphabet = ['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']

        first_cipher = ["aaaaa", "aaaab", "aaaba", "aaabb", "aabaa", "aabab", "aabba", "aabbb", "abaaa", "abaab", "ababa",
                        "ababb", "abbaa", "abbab", "abbba", "abbbb", "baaaa", "baaab", "baaba", "baabb", "babaa", "babab",
                        "babba", "babbb", "bbaaa", "bbaab"]

        second_cipher = ["aaaaa", "aaaab", "aaaba", "aaabb", "aabaa", "aabab", "aabba", "aabbb", "abaaa", "abaaa", "abaab",
                         "ababa", "ababb", "abbaa", "abbab", "abbba", "abbbb", "baaaa", "baaab", "baaba", "baabb", "baabb",
                         "babaa", "babab", "babba", "babbb"]

        def __init__(self, str):
            self.str = str
        def decode(self):
            str = self.str.lower()
            str_array = re.findall(".{5}", str)
            decode_str1 = ""
            decode_str2 = ""
            for key in str_array:
                for i in range(0,26):
                    if key == Baconian.first_cipher[i]:
                        decode_str1 += Baconian.alphabet[i]
                    if key == Baconian.second_cipher[i]:
                        decode_str2 += Baconian.alphabet[i]

            print(decode_str1)
            print(decode_str2)

    if __name__ == '__main__':
        str = input()
        bacon = Baconian(str)
        bacon.decode()

Python ASCII 字符串 转换

ASCII Python ASCII 字符串 转换 ASCII 转字符ASCII 转字符.pydef ASCIItostr(): try: s = input() ...

Python Base

Base Python Base Base.pyimport base64def base64codes(): s = input() b64encode = base64...

推荐阅读
Python Base Python Caesar Python RailFenceCipher Python Playfair Mac Code Test Python Morse

留言区

Notes
Cryptography
本文目录
Are You A Robot?