hashlib
Posted daviddd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hashlib相关的知识,希望对你有一定的参考价值。
hashlib
1,定义
hashlib:摘要算法/加密算法/哈希算法/散列算法
定义:通过一个函数,把任意长度的数据按照一定规则转换为一个固定的长度的数据 串,通常用16进制的字符串表示
特征要点:
- bytes数据类型→通过hashlib算法→固定长度的字符串
- 不同的bytes类型数据转化成的结果一定不同
- 相同的bytes类型数据转化的结果一定相同
- 此转化过程不可逆
-
import hashlib def file_check(file_path): with open(file_path,mode=‘rb‘) as f1: sha256 = hashlib.md5() while 1: content = f1.read(1024) if content: sha256.update(content) else: return sha256.hexdigest() print(file_check(‘python-3.6.6-amd64.exe‘))
# f = open(r"F:s24day17python-3.6.6-amd64.exe","rb") # import hashlib # md5 = hashlib.md5() # while True: # msg = f.read(1024) # if msg: # md5.update(msg) # else: # print(md5.hexdigest()) # break
普通加密:MD5
加密的内容
将加密的内容转换成字节
-
MD5普通加密,传闻已被破解 import hashlib md5 = hashlib.md5() ##初始化 md5.update("david".encode(‘utf-8‘)) ##加密 print(md5.hexdigest()) ##合成 print(len("172522ec1028ab781d9dfd17eaca4427"))
-
#/sha1()加密 md5 = hashlib.sha1() md5.update("david".encode(‘utf-8‘)) print(md5.hexdigest()) print(len("aa743a0aaec8f7d7a1f01442503957f4d7a2d634"))
-
# /sha256()高级加密 # md5 = hashlib.sha256() # md5.update("david".encode(‘utf-8‘)) # print(md5.hexdigest())
加盐加密
1,固定的盐
-
md5 = hashlib.md5("hello world".encode(‘utf-8‘)) md5.update("david".encode(‘utf-8‘)) print(md5.hexdigest())
2,动态的盐
-
user = input(‘username>>‘) pwd = input(‘password>>‘) md5 = hashlib.md5(user.encode(‘ust-8‘)) md5.update(pwd.encode(‘utf-8‘)) print(md5.hexdigest())
文件的一次性校验
依据hashlib的特征,hashlib也被用来验证文件一致性的重要工具
同一个bytes数据用同样的加密方式转化程度结果一定相同,如果不同,加密方式转化程度结果一定是不同的
文件较小(f.read)
-
def func(file): with open(file,mode=‘rb‘) as f1: ret = hashlib.md5() ret.update(f1.read()) return ret.hexdigest() print(func(‘hashlib_file1‘))
-
###校验pycharm的一次性校验 # f = open("./python-3.6.6-amd64.exe","rb") # import hashlib # md5 = hashlib.md5() # while True: # msg = f.read(1024) # if msg: # md5.update(msg) # else: # print(md5.hexdigest()) # break
以上是关于hashlib的主要内容,如果未能解决你的问题,请参考以下文章