Python常用模块之hashlib:md5和SHA1加密

    /    2018-05-18

  Python的hashlib提供了常见的摘要算法,如MD5,SHA1等,摘要算法又称哈希算法、散列算法,它通过一个函数,把任意长度的数据转换为一个长度固定的数据串,通常用16进制的字符串表示,目的是为了发现原始数据是否被人篡改过。

  一、MD5加密

  MD5是比较常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示。

  我们以常见的摘要算法MD5为例,计算出一个字符串的MD5值:  

import hashlib
md5 = hashlib.md5() #调用md5算法
md5.update('alex'.encode("utf-8")) #对字符串"alex"加密
print(md5.hexdigest())
计算结果:  
534b44a19bf18d20b71ecc4eb77c572f

  如果数据量很大,可以分块多次调用update(),最后计算的结果是一样的: 

import hashlib
md5 = hashlib.md5()
md5.update('how to use md5 in '.encode("utf-8"))
md5.update('python hashlib?'.encode("utf-8"))
print(md5.hexdigest())
计算结果:
d26a53750bc40b38b65a520292f69306

  二、 SHA1加密

  SHA1的结果是160 bit字节,通常用一个40位的16进制字符串表示。  

import hashlib
sha1 = hashlib.sha1()
sha1.update('how to use sha1 in '.encode("utf-8"))
sha1.update('python hashlib?'.encode("utf-8"))
print(sha1.hexdigest())
计算结果:
2c76b57293ce30acef38d98f6046927161b46a44


(10)

分享至