Python项目3—密码加密程序
Python项目3—密码加密程序

Python项目3—密码加密程序

加密思路:

1.先通过passwd_pre()函数对密码的每一位进行转换生成一个加密前缀。

2.再通过change_txt()函数密码进行多次不同的字符转换,取出每次转换后的前四位添加到加密后的密码中。

使用函数:

passwd_pre(pwd)加密前缀生成函数。

change_txt(pwd,str1,str2)迭代加密函数str1为用来检索pwd中需要改变的字符,str2中存放转换后的字符,更具str1和str2可以改变加密的方式。

change_passwd(pwd)函数中调用了passwd_pre(pwd)函数来生成加密前缀,以及通过change_txt(pwd,str1,str2)函数进行四次迭代生成加密后缀,并进行前缀后缀的拼接。

实现代码:

#encode:UTF-8
def passwd_pre(pwd):
    vret = []
    for char in pwd:
        if char in "abc":
            char = "!"
        elif char in "efg":
            char = "@"
        elif char in "hij":
            char = "#"
        elif char in "klm":
            char = "$"
        elif char in "nop":
            char = "%"
        elif char in "qrs":
            char = "^"
        elif char in "txy":
            char = "&"
        elif char in "z":
            char = "*"
        elif char.isupper():
            char = chr(ord(char.lower() + 1))
        vret.append(char)
    return "".join(vret)


def change_txt(pwd, str1, str2):
    vret = ""
    for char in pwd:
        j = str1.find(char)
        if j == -1:
            vret = vret + char
        else:
            vret=vret+str2[j]
    return vret

def change_passwd(pwd):
    if pwd ==None:
        return '-1'    
    vret=""
    #生成一个密码前缀
    vpre=passwd_pre(pwd)
    vret = vret+vpre
    vlen=len(pwd)
    #进行一次加密
    vstr=change_txt(pwd,"1234567890abcdefghigklmnopqrstuvwxyz","a12gn5uo8pd9ef4r6v7ws3bklmxyzcgh0iqt")
    if vlen<=4:
        vret=vret+vstr[0:vlen]
    else :
        vret=vret+vstr[0:4]
    #进行一次加密
    vstr=change_txt(pwd,"1234567890abcdefghigklmnopqrstuvwxyz","u2gl8zmxr6vb47wgka1y9efs30hocpdn5iqt")
    if vlen<=4:
        vret=vret+vstr[0:vlen]
    else :
        vret=vret+vstr[0:4]
    #进行一次加密
    vstr=change_txt(pwd,"1234567890abcdefghigklmnopqrstuvwxyz","efs3uakr6vbdn5i4qt7hocp1y90xl2g8zmwg")
    if vlen<=4:
        vret=vret+vstr[0:vlen]
    else :
        vret=vret+vstr[0:4]
    return vret

if __name__=="__main__":
    while True :
        pwd=input("请输入密码:")
        if(pwd=='q'):
            print("退出程序...")
            break
        else:
            pwdnew=change_passwd(pwd)
            print("密码是:"+pwd+"\n"+"加密后的密码是:"+pwdnew)

实现效果:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注