目录
hashlib和hmac模块: hashlib模块: -hash: 特点: 大致流程: 注意: hmac模块: 特点: 注意:hmac模块只接受二进制数据的加密 hashlib和hmac模块: --数据加密处理 hashlib模块: -hash: ----hash是一种算法(python3.版本里使用hashlib模块代替了md5模块和sha模块,主要提供 SHA1、SHA224、SHA256、SHA384、SHA512、MD5 算法),该算法接受传入的内容,经过运算得到一串hash值 特点: 只要传入的内容一样,得到的hash值一样,可用于非明文密码传输时密码校验 不能由hash值返解成内容,即可以保证非明文密码的安全性 只要使用的hash算法不变,无论校验的内容有多大,得到的hash值长度是固定的,可以用于对文本的哈希处理 大致流程: 原材料--》输入--》加工--》输出--》hash值import hashlibm = hashlib.md5()m.update('hello'.encode('utf-8'))print(m.hexdiget())--5d41402abc4b2a76b9719d911017c592注意: hash加密算法虽然看起来很厉害,但是他是存在一定缺陷的,即可以通过撞库可以反解
import hashlib# 假定我们知道hash的微信会设置如下几个密码pwd_List = [ 'hash3714','hash1313','hash94139413','hash123456','123456hash','h123ash',]def make_pwd_dic(pwd_List): dic = {} for pwd in pwd_List: m = hashlib.md5() m.update(pwd.encode('utf-8')) dic[pwd] = m.hexdigest() return dicdef break_code(hash_pwd,pwd_dic): for k,v in pwd_dic.items(): if v == hash_pwd: print('hash的微信的密码是===>%s' % k)hash_pwd = '0562b36c3c5a3925dbe3c4d32a4f2ba2'break_code(hash_pwd,make_pwd_dic(pwd_List))hash的微信的密码是===>hash123456hmac模块: -内部对我们创建key和内容做过某种处理后再加密。 特点: 要保证hmac模块最终结果一致,必须保证: hmac.new括号内指定的初始key一样 无论update多少次,校验的内容累加到一起是一样的内容
import hmach1 = hmac.new(b'hash')h1.update(b'hello')h1.update(b'world')print(h1.hexdigest())注意:hmac模块只接受二进制数据的加密 总结
以上是内存溢出为你收集整理的加密hashlib模块全部内容,希望文章能够帮你解决加密hashlib模块所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)