猫史档案馆


【Python作品分享】加密算法【作品秀】

用户:小麦做的面包小麦做的面包查看:5 回复:3 评论:5 创建时间:2022-08-04T14:06:12


【作品展示】

center_image

 

【作品介绍】

没什么用的加密算法

我打算叫它BMW(Bread made of Wheat)算法(雾

 

【作品源代码】

import json,time
with open('password.json') as f:
    file=json.load(f)
og2pw=file['og_pw']['og2pw']
pw2og=file['og_pw']['pw2og']
num2abc = file['num_abc']['num2abc']
abc2num = file['num_abc']['abc2num']
while True:
    choose=input('1:加密 2:解密:')
    if choose=='1':
        text=input('请输入:')
        #step1
        flag=0
        step1=''
        for i in text:
            if i in og2pw[not flag]:
                step1+='111'
                flag=not flag
            step1 += og2pw[flag][i]
        #step2
        step2=''
        total=0
        flag='0'
        for i in step1:
            if i==flag:
                total+=1
            else:
                flag='1' if flag=='0' else '0'
                step2+=str(total)
                total=1
        step2+=str(total)
        #step3
        step3=''
        total=0
        for i in step2:
            if i !='1':
                if total!=0:
                    step3+=num2abc[str(total)]
                    total=0
                step3+=i
            else:
                total+=1
        if total!=0:
            step3 += num2abc[str(total)]
        print(step3)
    elif choose=='2':
        step3 = input('请输入:')
        #step3~2
        step2=''
        for i in step3:
            if i not in abc2num:
                step2+=i
            else:
                step2+='1'*abc2num[i]
        #step2~1
        step1=''
        flag='0'
        for i in step2:
            step1+=flag*int(i)
            flag='1' if flag=='0' else '0'
        #step1~text
        step=step1
        text=''
        flag = 0
        while True:
            if step[:3] == '111':
                flag=not flag
                step=step[3:]
            else:
                num = 5-flag
                text += pw2og[step[:num]]
                step = step[num:]
                if len(step) < num:
                    break
        print(text)


        

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
小麦做的面包小麦做的面包

password.json

{"og_pw": {"og2pw": [{"a": "00001", "b": "00010", "c": "00011", "d": "00100", "e": "00101", "f": "00110", "g": "00111", "h": "01000", "i": "01001", "j": "01010", "k": "01011", "l": "01100", "m": "01101", "n": "01110", "o": "01111", "p": "10000", "q": "10001", "r": "10010", "s": "10011", "t": "10100", "u": "10101", "v": "10110", "w": "10111", "x": "11000", "y": "11001", "z": "11010"}, {"1": "0001", "2": "0010", "3": "0011", "4": "0100", "5": "0101", "6": "0110", "7": "0111", "8": "1000", "9": "1001", "0": "0000", " ": "1010"}], "pw2og": {"00001": "a", "00010": "b", "00011": "c", "00100": "d", "00101": "e", "00110": "f", "00111": "g", "01000": "h", "01001": "i", "01010": "j", "01011": "k", "01100": "l", "01101": "m", "01110": "n", "01111": "o", "10000": "p", "10001": "q", "10010": "r", "10011": "s", "10100": "t", "10101": "u", "10110": "v", "10111": "w", "11000": "x", "11001": "y", "11010": "z", "0001": "1", "0010": "2", "0011": "3", "0100": "4", "0101": "5", "0110": "6", "0111": "7", "1000": "8", "1001": "9", "0000": "0", "1010": " "}}, "num_abc": {"num2abc": {"1": "a", "2": "b", "3": "c", "4": "d", "5": "e", "6": "f", "7": "g", "8": "h", "9": "i", "10": "j", "11": "k", "12": "l", "13": "m", "14": "n", "15": "o", "16": "p", "17": "q", "18": "r", "19": "s", "20": "t", "21": "u", "22": "v", "23": "w", "24": "x", "25": "y", "26": "z"}, "abc2num": {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5, "f": 6, "g": 7, "h": 8, "i": 9, "j": 10, "k": 11, "l": 12, "m": 13, "n": 14, "o": 15, "p": 16, "q": 17, "r": 18, "s": 19, "t": 20, "u": 21, "v": 22, "w": 23, "x": 24, "y": 25, "z": 26}}}

点赞2


评论


黑客熊猫黑客熊猫

你这是对称加密,建议使用非对称加密

点赞1


评论


EUWEUW

不如我的 https://shequ.codemao.cn/community/1626931

点赞0


评论