python中md5加密的实现

python中md5加密的实现python中md5加密的实现MD5消息摘要算法:(英语:MD5Message-DigestAlgorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hashvalue),用于确保信息传输完整一致。MD5是最常见的摘要算法,速度很快,生成结果是固定的128bit字节,通常用一个32位的16进制字符串表示。Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个

大家好,又见面了,我是你们的朋友全栈君。

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加密后为 :d3e616f6b5be276111f227c80b4ec516

示例代码(二):

import hashlib

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

运行结果:

d3e616f6b5be276111f227c80b4ec516

示例代码(三):

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))

运行结果:

d3e616f6b5be276111f227c80b4ec516

【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加密的实现

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

python中md5加密的实现

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

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

(0)
上一篇 2022年7月11日 上午10:46
下一篇 2022年7月11日 上午10:46


相关推荐

  • harris角点检测_那就更详细一点吧

    harris角点检测_那就更详细一点吧1.不同类型的角点在现实世界中,角点对应于物体的拐角,道路的十字路口、丁字路口等。从图像分析的角度来定义角点可以有以下两种定义:角点可以是两个边缘的角点; 角点是邻域内具有两个主方向的特征点;前者往往需要对图像边缘进行编码,这在很大程度上依赖于图像的分割与边缘提取,具有相当大的难度和计算量,且一旦待检测目标局部发生变化,很可能导致操作的失败。早期主要有Rosenfeld和Freema…

    2022年10月9日
    5
  • 雪花飘落的背景图 HTML

    雪花飘落的背景图 HTML

    2022年3月12日
    45
  • java给链表赋值_Java链表操作代码[通俗易懂]

    java给链表赋值_Java链表操作代码[通俗易懂]/****/packagecom.cherish.SwordRefersToOffer;/***@authoracer**/publicclasstest_22链表中倒数第k个节点{/****/publictest_22链表中倒数第k个节点(){//TODO自动生成的构造函数存根}publicstaticclassListNode{privateintval;ListNode…

    2022年5月2日
    221
  • mongodb 学习笔记 04 — 游标、索引「建议收藏」

    mongodb 学习笔记 04 — 游标、索引

    2022年1月29日
    50
  • 织梦CMS系统中power by dedecms怎么去掉?power by dedecms什么意思?

    织梦CMS系统中power by dedecms怎么去掉?power by dedecms什么意思?织梦CMS近期的新版本至2013-6-7更新包以来,不管新版还是旧版更新补丁包,更新后网站页底都会出现powerbydedecms。powerbydedecms什么意思呢,那powerbydedecms怎么去掉呢,请大家看以下方法:一、powerbydedecms什么意思在我们上网的时候,会见到页面页底很多带powerbydedecms的网站,powerbyded…

    2022年7月13日
    17
  • 八、JDK1.8中HashMap扩容机制

    八、JDK1.8中HashMap扩容机制导读前面文章一、深入理解-Java集合初篇中我们对Java的集合体系进行一个简单的分析介绍,上两篇文章二、Jdk1.7和1.8中HashMap数据结构及源码分析、三、JDK1.7和1.8HashMap数据结构及源码分析-续中我们分别对JDK1.7和JDK1.8中HashMap的数据结构、主要声明变量、构造函数、HashMap的put操作方法做了深入的讲解和源码分析。四、深入理解Java中的HashMap「网易面试快答」文章中主要针对面试中常见的面试问题进行简单解答。五、深入理解JDK1.7中H

    2022年6月16日
    24

发表回复

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

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