首页 编程教程正文

Python 社会主义核心价值观的加解密工具

piaodoo 编程教程 2020-02-22 22:14:43 2570 0 python教程

本文来源吾爱破解论坛

本帖最后由 流月汐志 于 2020-1-23 17:41 编辑

根据坛友的思路做的一个 Python 版本的社会主义核心价值观加解密工具,
能力有限,代码粗糙,大家将就着看看。
思路:1. 每个字符(不论中文英文)转成 16 位的二进制,不足的左边补零。
2. 然后拆成  4*4 的二进制字符串。
3. 转十进制,大于等于 11 的,拆分2个;不大于的补零。保证每个 2 位 十进制数
4. 于是得到 8 位 11 以内的十进制数,查社会主义list,即为加密结果。
原帖地址:https://www.52pojie.cn/thread-1081771-1-1.html

效果图

TIM截图20200121152837.png (55 KB, 下载次数: 0)

下载附件  保存到相册

2020-1-21 15:51 上传



[Python] 纯文本查看 复制代码
def decoder(string):
    len_str = len(string)
    if len_str % 16 != 0:
        return 0
    result = ''
    for x in range(0, len_str, 16):
        decode_char = string[x:x+16]
        temp_int = [ENSTRS.index(decode_char[y:y+2]) for y in range(0, 16, 2)]
        int_list = [temp_int[x]+temp_int[x+1] for x in range(0, 8, 2)]
        bin_temp = [bin(i).replace('0b', '') for i in int_list]
        binstr_list = []
        for b in bin_temp:
            if len(b) < 4:
                binstr_list.append(b.zfill(4))
            else:
                binstr_list.append(b)
        binstr = ''.join(binstr_list)
        result = result + chr(int(binstr, 2))
    return result


def encoder(string):
    result = ''
    binstr_list = [b.replace('0b', '') for b in [bin(ord(c)) for c in string]]
    for binstr in binstr_list:
        len_binstr = len(binstr)
        if len_binstr < 16:
            binstr = binstr.zfill(16)
        temp_list = [binstr[start:start+4] for start in range(0, 16, 4)]
        int_list = []
        for i in temp_list:
            i = int(i, 2)
            if i >= 11:
                int_list.append(11)
                int_list.append(i - 11)
            else:
                int_list.append(0)
                int_list.append(i)
        result = result + ''.join([ENSTRS[index] for index in int_list])
    return result


ENSTRS = ("富强", "民主", "文明", "和谐", "自由", "平等",
          "公正", "法治", "爱国", "敬业", "诚信", "友善")

while True:
    input_str = input("1. 加密    2. 解密\n请选择:")
    if input_str in ['eof', 'EOF', 'quit', 'QUIT', 'exit', 'EXIT']:
        break
    elif input_str in ['1', '加密']:
        encode_str = input("请输入字符串:\n")
        result = encoder(encode_str)
        print("加密结果:\n{}".format(result))
    elif input_str in ['2', '解密']:
        decode_str = input("请输入加密字符串:\n")
        result = decoder(decode_str)
        print("解密结果:\n{}".format(result))
    else:
        print("输入有误!")

ps: 觉得有点意思的小伙伴们,路过点个热心呗,蟹蟹了~~

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7914.html

搜索