当前位置:   article > 正文

python中md5加密的实现(hashlib)_hl.hexdigest

hl.hexdigest

MD5消息摘要算法:(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示。

Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。

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

在python3的标准库中,已经移除了md5模块,而关于hash加密算法都放在hashlib这个标准库中,如SHA1、SHA224、SHA256、SHA384、SHA512和MD5算法等。

示例代码(一):

  1. import hashlib
  2. # 待加密信息
  3. str = 'this is a md5 Test.'
  4. # 创建md5对象
  5. hl = hashlib.md5()
  6. # Tips
  7. # 此处必须声明encode
  8. # 若写法为hl.update(str) 报错为: Unicode-objects must be encoded before hashing
  9. hl.update(str.encode(encoding='utf-8'))
  10. print('MD5加密前为 :' + str)
  11. print('MD5加密后为 :' + hl.hexdigest())

运行结果:

  1. MD5加密前为 :this is a md5 Test.
  2. MD5加密后为 :d3e616f6b5be276111f227c80b4ec516

示例代码(二):

  1. import hashlib
  2. str = 'this is a md5 Test.'
  3. str_md5 = hashlib.md5(str.encode(encoding='utf-8')).hexdigest()
  4. print(str_md5)

运行结果:

d3e616f6b5be276111f227c80b4ec516

有时候我们需要哈希加密后的某几位数,可以使用索引切片的形式,如示例代码(三)所示。

示例代码(三):

  1. import hashlib
  2. str = 'this is a md5 Test.'
  3. str_md5 = hashlib.md5(str.encode(encoding='utf-8')).hexdigest()
  4. print(str_md5)
  5. # 只需要哈希解密后的前10位数
  6. str_md5 = hashlib.md5(str.encode(encoding='utf-8')).hexdigest()[:10]
  7. print(str_md5)

运行结果:

示例代码(四):   【调用函数的形式】

  1. import hashlib
  2. def computeMD5(message):
  3. m = hashlib.md5()
  4. m.update(message.encode(encoding='utf-8'))
  5. return m.hexdigest()
  6. str = 'this is a md5 Test.'
  7. print(computeMD5(str))

运行结果:

d3e616f6b5be276111f227c80b4ec516

【md5补充代码】

  1. import hashlib
  2. data = 'hoahaoxuexi,tiantianxiangshang!'
  3. # 创建hash对象
  4. md5 = hashlib.md5()
  5. # 向hash对象中添加需要做hash运算的字符串
  6. md5.update(data.encode()) # 这个地方传的是bytes类型的数据,否则会报错
  7. # 获取字符串的hash值
  8. result = md5.hexdigest()
  9. print(result)

运行效果:

【md5一旦加密,数据就不能返回成原来的值了,是不可以解密的】【对于同一个字符串稍微做一点修改,加密后的哈希值变化是很大的】

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/133516
推荐阅读
相关标签
  

闽ICP备14008679号