python中md5加密的实现(hashlib)

python中md5加密的实现(hashlib)python 中 md5 加密的实现 hashlib

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算法等。

示例代码(一):

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

运行结果:

MD5加密前为 :this is a md5 Test. MD5加密后为 :d3e616f6b5bef227c80b4ec516

示例代码(二):

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

运行结果:

d3e616f6b5bef227c80b4ec516

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

示例代码(三):

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

运行结果:

python中md5加密的实现(hashlib)

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

import hashlib def computeMD5(message): m = hashlib.md5() m.update(message.encode(encoding='utf-8')) return m.hexdigest() str = 'this is a md5 Test.' print(computeMD5(str)) 

运行结果:

d3e616f6b5bef227c80b4ec516

【md5补充代码】

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

运行效果:

python中md5加密的实现(hashlib)

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

python中md5加密的实现(hashlib)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209773.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午8:27
下一篇 2026年3月19日 上午8:27


相关推荐

  • 黑色非主流图片伤感女_用一串代码让全班同学说卧槽的代码

    黑色非主流图片伤感女_用一串代码让全班同学说卧槽的代码校内代码xiaonei代码xiaonei黑色非主流代码http://xioonei.cn

    2022年10月18日
    3
  • (ADRC)自抗扰控制器学习总结(一)

    (ADRC)自抗扰控制器学习总结(一)ADRC自抗扰控制基本思想要点:1.标准型与总扰动,扩张状态与扰动整体辨识,微分信号生成与安排过渡过程以及扰动的消减与控制量产生。ADRC主要构成:1>跟踪微分器(TD) 解决由不连续或带随机噪声的量测信号,合理提取连续信号(跟踪给定)及微分信号的问题。 根据微分输出与最速综合函数,可以安排闭环系统的过渡过程。以单位阶跃信号为例,经过跟踪微分器的过渡,产生的输出效果

    2022年5月19日
    42
  • 浏览器offsetWidth、clientWidth、scrollWith等总结

    浏览器offsetWidth、clientWidth、scrollWith等总结  对象尺寸会涉及width和height,我们以width为例,height则是一样的道理。  1、clientWidth:对象可见的宽度,不包括滚动条等边线,会随窗口的显示大小改变。  clientWidth = 元素width+padding  2、scrollWidth:实际内容的宽,不包括边线宽度,会随着对象中内容的多少改变。  无滚动时等于c…

    2022年7月22日
    15
  • crunch使用方法_launch中文

    crunch使用方法_launch中文名字   crunch-从一个字符集中产生对应的字典简介   crunch[][选项]注:中括号里面的是可选项说明   crunch能够根据你给定的标准来产生字典。并且可以将结果输出到屏幕,文件或者其它程序。参数   最小长度      你想要让crunch产生的字符串的最小长度。这个参数即使不会用到也必须填写。   最

    2025年6月2日
    5
  • 浅析 PHP7 底层运行机制[通俗易懂]

    浅析 PHP7 底层运行机制

    2022年2月11日
    47
  • java中update怎么写,update语句

    java中update怎么写,update语句手机评站网今天精心准备的是 update 语句 下面是详解 SQL 的 update 语句怎么写 当 a 列的值为 f 时 对 x 表的 b c d e 列同时更新数据 当 a 列的值为 f 时 对 x 表的 b c d e 列同时更新数据 UPDATE 表名称 SET 列名称 新值 WHERE 列名称 某值 update 语句的写法 1 UPDATEtable name2 SETcolumn1 value1 column

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号