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