鱼C论坛

 找回密码
 立即注册
查看: 11097|回复: 35

[技术交流] python小练习(002):简单字符串加密解密(基础篇)

[复制链接]
发表于 2017-7-5 20:51:30 | 显示全部楼层
def jiami(clear_word,password):
    list_cw = []
    list_pw = []
    for i in clear_word:
        list_cw.append(ord(i))
    for i in password:
        list_pw.append(ord(i))

    len_cw = len(clear_word)
    len_pw = len(password)

    vacant_list = []
    for i in range(len_cw):
        vacant_list.append(list_cw[i]^list_pw[i%len_pw])
    return vacant_list


def jiemi(dirt_word,password):
    list2_pw = []
    for i in password:
        list2_pw.append(ord(i))
    len_dw = len(dirt_word)
    len_pw = len(password)
    vacant_list = []
    for i in range(len_dw):
        vacant_list.append(chr(int(dirt_word[i])^list2_pw[i%len_pw]))
    return vacant_list


def output_miwen(miwen):
    count = 0
    for i in miwen:
        if count<len(miwen)-1:
            print(i,end = ',')
        else:
            print(i)
        count+=1

def output_mingwen(mingwen):
    for i in mingwen:
        print(i,end = '')

def exchangelist(i):
    vacant = []
    for j in range(i):
        while True:
            num = input('请输入:')
            if 0<=int(num)<=255:
                vacant.append(num)
                break
            print('输入有误,请重新输入')
    return vacant

print('你想加密还是解密?')
while True:
    answer = input('我想:(加密/解密)')
    if answer =='加密':
        clear = input('请输入明文:')
        word = input('请输入密匙:')
        miwen = jiami(clear,word)
        output_miwen(miwen)
        break
    elif answer == '解密':
        num = int(input('你想输入多少位的密文?'))
        dirt = exchangelist(num)
        word = input('请输入密匙:')
        mingwen = jiemi(dirt,word)
        output_mingwen(mingwen)
        break
    else:
        print('输入错误,请输入‘加密’或者‘解密’')
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-30 08:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表