最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python模块学习hashlib

来源:动视网 责编:小采 时间:2020-11-27 14:27:16
文档

python模块学习hashlib

python模块学习hashlib:一、hashlib概述涉及加密服务:14. Cryptographic Services其中 hashlib是涉及安全散列和消息摘要,提供多个不同的加密算法借口,如SHA1、SHA224、SHA256、SHA384、SHA512、md5等。import hashlib m = hashlib.md5() #创建
推荐度:
导读python模块学习hashlib:一、hashlib概述涉及加密服务:14. Cryptographic Services其中 hashlib是涉及安全散列和消息摘要,提供多个不同的加密算法借口,如SHA1、SHA224、SHA256、SHA384、SHA512、md5等。import hashlib m = hashlib.md5() #创建


一、hashlib概述

涉及加密服务:14. Cryptographic Services

其中 hashlib是涉及安全散列和消息摘要,提供多个不同的加密算法借口,如SHA1、SHA224、SHA256、SHA384、SHA512、md5等。

import hashlib
m = hashlib.md5() #创建hash对象,
md5:(message-Digest Algorithm 5)消息摘要算法,得出一个128位的密文
PRint m #<md5 HASH object @ 000000000254ADF0>
m.update('BeginMan')#更新哈希对象以字符串参数
print m.digest() #返回摘要,作为二进制数据字符串值
print m.hexdigest() #返回十六进制数字字符串 0b28251e684dfbd9102f8b6f0281c0c5print 
m.digest_size #16
print m.block_size #64

使用new()创建指定加密模式的hash对象

new(name, string='') """
 Return a new hashing object using the named algorithm;
 optionally initialized with a string. """
h = hashlib.new('md5')print h #<md5 HASH object @ 000000000260BDB0>h2 = hashlib.new('ripemd160','what')print h2 #<ripemd160 HASH object @ 000000000271B9F0>h.update('beginman')print h.hexdigest() #666fc5baa93a7fb207c5bfff03b67732#等效s = hashlib.md5()
s.update('beginman')print s.hexdigest() #666fc5baa93a7fb207c5bfff03b67732print h2.hexdigest() #9c1185a5c5e9fc54612808977ee8f548b2258d31
三、常用属性
print hashlib.algorithms #('md5', 'sha1', 'sha224', 
'sha256', 'sha384', 'sha512') 列出所有加密算法
print 
h.digest_size #16 产生的散列的字节大小。 
print 
h.block_size #64 The internal block size of the hash algorithm in bytes.

四、常用方法

hash.update(arg)

更新哈希对象以字符串参数,如果同一个hash对象重复调用该方法,则m.update(a); m.update(b) is equivalent to m.update(a+b).

hash.digest()

返回摘要,作为二进制数据字符串值,

hash.hexdigest()

返回摘要,作为十六进制数据字符串值,

hash.copy()

复制

最近在测试文件拷贝测试,需要对文件拷贝后进行MD5值比较,看是不是拷贝完全。google和baidu上都是使用md5模块读取所有的文件进内存,在计算md5,导致计算超过1G大小的文件报错。timespace兄给出了增量计算MD5的方法,记录一下:

#!/usr/bin/env pythonimport hashlibimport sys 

def main(): if len(sys.argv) != 2:
 sys.exit('Usage: %s file' % sys.argv[0])

 filename = sys.argv[1]
 m = hashlib.md5()
 with open(filename, 'rb') as fp: 
 while True:
 blk = fp.read(4096) # 4KB per block
 if not blk: break
 m.update(blk) print m.hexdigest(), filenameif __name__ == '__main__':
 main()

文档

python模块学习hashlib

python模块学习hashlib:一、hashlib概述涉及加密服务:14. Cryptographic Services其中 hashlib是涉及安全散列和消息摘要,提供多个不同的加密算法借口,如SHA1、SHA224、SHA256、SHA384、SHA512、md5等。import hashlib m = hashlib.md5() #创建
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top