hashlib

来源:互联网 发布:淘宝网首页官网床垫 编辑:程序博客网 时间:2024/05/23 01:34

hashlib 包含众多加密方法,包括:
md5,SHA1 ,SHA224,SHA256,SHA284等。
md5为不可逆加密算法,无法被反解,但是可用通过撞库解决。

import hashlibt = hashlib.md5()t.update(bytes("RootAdmin",encoding="utf-8"))print(t.hexdigest())

t.update 中可以写密码和字符编码,但这种方法可用通过撞库解决
在md5加密过程中,添加自己的专属字符串,可用达到无法解密的作用。

from hashlib import md5hash = md5(bytes("ad;'sadf'as'", encoding="utf8"))hash.update(bytes("123456", encoding="utf8"))print(hash.hexdigest())

在md5(bytes(“ad;…..”))中,使用了自己的字符串,加密,保证了加密后的字符串不被撞库破解。
通过Md5实现一个加密的登录注册程序:

**init.py**try:    import cPickle as pickleexcept ImportError:    import pickledef init():    users = {}    with open("DB", "wb") as f:        f.write(pickle.dumps(users))**main.py**import hashlibimport pickledef md5(arg):    t = hashlib.md5(bytes("ad;ddafd;as;", encoding="utf-8"))    t.update(bytes("arg", encoding="utf-8"))    return t.hexdigest()def login(arg1, arg2):    with open("db", "rb") as f:        users = pickle.loads(f.read())        print(users)        if users[arg1] == md5(arg2):            print("login success")        else:            print("login fail")def register(arg1, arg2):    global users    with open("DB", "rb+") as f:        users = pickle.loads(f.read())        users[arg1] = md5(arg2)        print(users)    with open("DB", "wb") as f:        f.write(pickle.dumps(users))t = input("please input 1 to choose register,2 to login")if t == "1":    username = input("Please input your username:")    password = input("Please input your password:")    register(username,password)elif t == "2":    username = input("Please input your username:")    password = input("Please input your password:")    login(username,password)**checkout.py**try:    import cPickle as pickleexcept ImportError:    import pickledef check():    with open("DB", "rb") as f:        users = pickle.loads(f.read())        print(users)check()
原创粉丝点击