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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 史上最全量化交易资源整理

    史上最全量化交易资源整理有些国外的平台、社区、博客如果连接无法打开,那说明可能需要“科学”上网国内在线量化平台:BigQuant-你的人工智能量化平台-可以无门槛地使用机器学习、人工智能开发量化策略,基于python,提供策略自动生成器镭矿-基于量化回测平台果仁网-回测量化平台京东量化-算法交易和量化回测平台聚宽-量化回测平台

    2022年7月21日
    36
  • Leetcode: Shortest Word Distance II

    Leetcode: Shortest Word Distance II

    2021年9月11日
    48
  • 使用BCGControlBar界面库美化MFC界面的详细过程

    使用BCGControlBar界面库美化MFC界面的详细过程系统环境:Windows7软件环境:VisualStudio2013本次目的:实现MFC对话框换肤下载安装BCGControlBar25激活成功教程版安装完成自动弹出编译库文件的对话框,选择需要的进行编译,需要一段时间,等候,完成打开vs2013首先使用BCGPAppWizard建立工程:Applicationtype:Dialog

    2022年10月8日
    0
  • 微信不能登录网页版(微信手机网页登录)

     因为出于工作和学习的目的,我的个人电脑操作系统使用的是Ubuntu18.04LTS,就目前而言,许多优秀的软件都有Linux版本,虽然Linux的用户相对群体较小,但是其软件生态也在逐渐成长,而且日常使用浏览器就可以解决许多的应用需求。现在微信和QQ在生活和工作领域均是举足轻重,emm…  BUT!!!腾讯到目前为止并没有推出Linux版的微信和TI…

    2022年4月12日
    58
  • Razor语法_range语法

    Razor语法_range语法本章通过示例来说明常见用途下的Razor语法。1.Razor中的核心转换符号是@。这个单一字符用做标记-代码的转换字符,有时也反过来用作代码-标记的转换字符。这里共有两种基本类型的转换:代码表达式和代码块。求出表达式的值,然后将值写入到响应中。@{stringrootNamespace="MyApp";}<span>@rootNamespace.Models&…

    2022年10月25日
    0
  • 11种将InputStream转换成String的方法以及性能分析[通俗易懂]

    从其他回答中总结出了11种能将InputStream转换成String的方法(如下),并且对所有方法进行了性能测试(对比结果如下):将InputStream转换成String的方法:1.使用IOUtils.toString(ApacheUtils)Stringresult=IOUtils.toString(inputStream,StandardCharse…

    2022年4月16日
    43

发表回复

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

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