Python hashlib 模块

在 Linux 中,使用 md5sum 命令生成字符串或文件的摘要信息 ( 也就是对字符串或文件做加解密 ),默认使用 md5 加密算法算出摘要信息
在 Python 中,使用 hashlib 模块生成字符串或文件的摘要信息 ( 也就是对字符串或文件做加解密 ),支持多种加密算法,如 md5,sha256,sha512 等等

使用 hashlib 对字符串进行加密:

In [1]: import hashlib

In [2]: m = hashlib.md5('hello world')    # 对字符串进行md5加密,也可以使用其他加密算法,如 sha256,sha512 等

In [3]: m.digest()       # 查看摘要信息(二进制)
Out[3]: '^\xb6;\xbb\xe0\x1e\xee\xd0\x93\xcb"\xbb\x8fZ\xcd\xc3'

In [4]: m.hexdigest()    # 查看摘要信息(十六进制)
Out[4]: '5eb63bbbe01eeed093cb22bb8f5acdc3'

也可以使用 update() 方法来更新哈希对象,效果跟上面的一样:

In [1]: import hashlib

In [2]: m = hashlib.md5()

In [3]: m.update('hello ')

In [4]: m.update('world')

In [5]: m.hexdigest()
Out[5]: '5eb63bbbe01eeed093cb22bb8f5acdc3'

使用 hashlib 对文件进行加密:

#!/usr/bin/evn python
#-*- coding:utf-8 -*-

import sys
import hashlib

def md5sum(f):
    md5 = hashlib.md5()
    with open(f) as fd:
        while True:
            data = fd.read(4096)
            if data:
                md5.update(data)
            else:
                break
    return md5.hexdigest()

if __name__ == '__main__':
    print md5sum(sys.argv[1])
[root@localhost ~]$ python 1.py /data/1.txt 
64973b4424a9af943e233fa7dd5aa17f

 

 

 

 

 

 

 

      

posted @ 2019-01-17 21:04  孔雀东南飞  阅读(185)  评论(0编辑  收藏  举报