python---hashlib

简介

  用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法。

  在python3中已经废弃了md5和sha模块,简单说明下md5和sha的使用。

  什么是摘要算法呢?

  摘要算法又称为哈希算法,散列算法。它通过一个函数,把任意长度的数据转换为一个长度固顶的数据串(通常用16进制的字符串表示)用于加密相关的操作。

md5加密

1 hash = hashlib.md5()
2 hash.update(‘admin‘.encode(‘utf-8‘))
3 print(hash.hexdigest())
4 21232f297a57a5a743894a0e4a801fc3

sha1加密

1 hash = hashlib.sha1()
2 hash.update(‘admin‘.encode(‘utf-8‘))
3 print(hash.hexdigest())
4 d033e22ae348aeb5660fc2140aec35850c4da997

sha256加密

1 hash = hashlib.sha256()
2 hash.update(‘admin‘.encode(‘utf-8‘))
3 print(hash.hexdigest())
4 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918

sha384加密

1 hash = hashlib.sha384()
2 hash.update(‘admin‘.encode(‘utf-8‘))
3 print(hash.hexdigest())
4 9ca694a90285c034432c9550421b7b9dbd5c0f4b6673f05f6dbce58052ba20e4248041956ee8c9a2ec9f10290cdc0782

sha512加密

1 hash = hashlib.sha512()
2 hash.update(‘admin‘.encode(‘utf-8‘))
3 print(hash.hexdigest())
4 c7ad44cbad762a5da0a452f9e854fdc1e0e7a52a38015f23f3eab1d80b931dd472634dfac71cd34ebc35d16ab7fb8a90c81f975113d6c7538dc69dd8de9077ec

加点盐

以上加密算法虽然很厉害,但仍然存在缺陷,通过撞库可以反解。所以必要对加密算法中添加自定义key再来做加密。

1 ######  md5 加密 ############
2 hash = hashlib.md5(‘python‘.encode(‘utf-8‘))
3 hash.update(‘admin‘.encode(‘utf-8‘))
4 print(hash.hexdigest())
5 75b431c498b55557591f834af7856b9f

hmac加密

hmac内部对我们创建的key和内容进行处理后在加密

1 import hmac
2 h = hmac.new(‘python‘.encode(‘utf-8‘))
3 h.update(‘helloworld‘.encode(‘utf-8‘))
4 print(h.hexdigest())
5 b3b867248bb4cace835b59562c39fd55

获取文件的MD5

 1 import hashlib
 2 def md5sum(filename):
 3         """
 4         用于获取文件的md5值
 5         :param filename: 文件名
 6         :return: MD5码
 7         """
 8         if not os.path.isfile(filename):  # 如果校验md5的文件不是文件,返回空
 9             return
10         myhash = hashlib.md5()
11         f = open(filename, ‘rb‘)
12         while True:
13             b = f.read(8096)
14             if not b:
15                 break
16             myhash.update(b)
17         f.close()
18         return myhash.hexdigest()
时间: 2024-10-18 03:04:41

python---hashlib的相关文章

Python hashlib模块 (主要记录md5加密)

python提供了一个进行hash加密的模块:hashlib 下面主要记录下其中的md5加密方式(sha1加密一样把MD5换成sha1) [python] view plaincopyprint? >>> import hashlib >>> m = hashlib.md5() >>> m.update("Nobody inspects") >>> m.update(" the spammish repe

Python Hashlib笔记

#python3.4hashlib module - A common interface to many hash functions.hash.digest() - Return the digest of the data passed to the update() method so far. This is a bytes object of size digest_size which may contain bytes in the whole range from 0 to 2

Python——hashlib

该模块实现了诸多安全哈希和消息摘要算法的通用接口,包括 FIPS 安全哈希算法: SHA1, SHA224, SHA256, SHA384 和 SHA512 算法(在 FIPS 180-2 中定义),还有  RSA 的 MD5 算法(在 RFC 1321 中定义).“安全哈希” 和 “消息摘要” 是等价的,旧的算法被称为消息摘要,新的术语则称其为安全哈希. * adler32 和 crc32 算法在 zlib 模块中. * 某些算法存在已知的哈希冲突漏洞,请参考“六.另见”. 目录 一.创建 h

python hashlib 模块

hashlib模块 用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import hashlib m = hashlib.md5() m.update(b"Hello") m.update(b"It's me") print(m.digest()) m.update(b"It's been a long time since last time w

python hashlib模块算法

hashlib模块 python中的hashlib为我们提供了常见的摘要算法,如MD5.sha1 那么现在问题来了,摘要算法是what? 摘要算法又称哈希算法.散列算法. 它指的是把任意长度的数据data,通过函数f(),转换为一个长度固定的摘要digest(通常用16进制的字符串表示), 目的是为了发现原始的数据是否被人篡改过. 摘要算法之所以可以辨别数据是否被人篡改过,就是因为摘要函数是一个单向函数, 想要计算f(data)很容易,但是通过digest反推data却非常困难. 并且,只要是对

python hashlib模块

作用:可以用来加密.md5.sha1.sha256.sha512 1 >>> import hashlib #导入hashlib加密模块 2 >>> m=hashlib.md5() #定义一个md5对象 3 >>> print(m) 4 <md5 HASH object @ 0x7fb78f99c6c0> #输出对象m可以看出是一个md5 hash 对象 5 >>> m.update("hello world&q

python: hashlib 加密模块

加密模块hashlib import hashlib m=hashlib.md5() m.update(b'hello') print(m.hexdigest()) #十六进制加密 m.update(b'world') print(m.hexdigest()) #这个的加密是(b('helloworld')) #5d41402abc4b2a76b9719d911017c592 #fc5e038d38a57032085441e7fe7010b0 s=hashlib.md5() s.update(b

python hashlib模块 logging模块

一 hashlib模块 import hashlib md5=hashlib.md5() #可以传参,加盐处理 print(md5) md5.update(b'alex') #update参数必须是byte类型 md5.update(b'sb') print(md5.hexdigest()) #结果与update(b'alexsb')是一样的 输出: <md5 HASH object @ 0x00000204693FC3C8> 3b30fab9b1de071c65055026862ce00e

Python hashlib、hmac加密模块

#用于加密的相关操作,3.x里代替了md5模块和sha模块,主要提供sha1,sha224,sha256,sha384,sha512,md5算法#sha2为主流加密算法,md5加密方式不如sha2import hashlibm = hashlib.md5()m.update(b"hello")m.update(b"it's me")print(m.digest())#二进制格式hashprint(m.hexdigest())#16进制格式hash,无论什么加密都用此

一个很简单的MD5计算,python hashlib

1 import hashlib 2 import time 3 4 size = 2048 5 md5 = hashlib.md5() 6 start = time.time() 7 with open('ubuntu-18.04-desktop-amd64.iso', 'rb') as f: 8 a = f.read(2048) 9 md5.update(a) 10 while len(a) > 0: 11 # print(a) 12 a = f.read(2048) 13 md5.upda