大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
hashlib模块是python内置的摘要算法。
hashlib有两种调用方式:
第一种是hashlib.new方法
new(name, data=b‘‘, **kwargs) – returns a new hash object implementing the given hash function; initializing the hash using the given binary data.
importhashlib
md5obj= hashlib.new(“md5”, b‘alex3714‘)
md5obj.hexdigest()
第二种是直接创建被允许的的算法
Named constructor functions are also available, these are faster than using new(name):
md5(), sha1(), sha224(), sha256(), sha384(), sha512(), blake2b(), blake2s(), sha3_224, sha3_256, sha3_384, sha3_512, shake_128, and shake_256.
More algorithms may be available on your platform but the above are guaranteed to exist. See the algorithms_guaranteed and algorithms_available attributes to find out what algorithm names can be passed to new().
importhashlib#将一个字符串进行摘要运算,拿到一个固定的值;,包含了多中加密算法
md5obj = hashlib.md5() #摘要
md5obj.update(b‘alex‘) #要加密的字符串的字节
md5obj.update(b”3714″) #要加密的字符串的字节#多次update是拼接到一起的,再进行hexdigest(),结果和一次update的时一样的#md5obj.update(b‘alex3714)
md5obj.hexdigest() #转成16进制,加密结果是32位
用户名与密码加密:
名词:撞库,根据输入和摘要算法的结果来验证输入与存储的加密算法结果的一致性。
加盐,通过加入随机字符串来防止撞库。
对用户名和密码加密,通常会进行加盐:
1.根据用户名生成随机字符串
2.将该随机字符串与密码拼接在一起,进行摘要算法,得到最后的密码加密结果
importhashlib, random
l1= list(range(48, 58))
l2= list(range(65, 91))
l3= list(range(97, 123))
l1.extend(l2)
l1.extend(l3)
username= “alex”passwd= “alex3714”
#根据用户名生成随机字符串
lis = “”
for i in range(16):
v= random.randint(0, len(l1)-1)
lis+=chr(l1[v])
passwd+=lis
md5= hashlib.new(“md5″, bytes(passwd, encoding=”utf8”))
passwd=md5.hexdigest()
user=dict(
username=username,
user_string=lis,
passwd=passwd,
)print(user)#{‘username‘: ‘alex‘, ‘user_string‘: ‘MnkCViH3avdDYp3U‘, ‘passwd‘: ‘35a5a0e38ea22720a78d594d8f02a021‘}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/227276.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...