MD5算法:利用python进行md5 hash值的获取

这篇具有很好参考价值的文章主要介绍了MD5算法:利用python进行md5 hash值的获取。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MD5基本概念

MD5,即信息摘要算法,英文为MD5 Message-Digest Algorithm,是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),也叫散列值,用于确保信息传输完整一致。
它可以从一个字符串或一个文件中按照一定的规则生成一个特殊的字符串,这个特殊的字符串就被称之为摘要。

MD5的作用

通常用于校验一组数据是否被篡改。例如,校验一个文件是否被篡改。

MD5特点及现状:

1)、hash值长度固定。它是一段固定长度的数据,即16个字节(128bit)。无论原始数据是多长或多短,其MD5值都是128bit。

2)、通常,计算出来的md5值包含0~9和大小写字母a ~ f, 以及A ~ F的32位可见字符。即将128bit的数据打印输出时,是一个32位的字符串。(因为直接输出16bytes的数据,是乱码,不可见)。

3)、hash值的确定性,一个原始数据的MD5值是唯一的,同一个原始数据不可能会计算出多个不同的MD5值。

4)、碰撞性,原始数据与其MD5值并不是一一对应的,有可能多个原始数据计算出来的MD5值是一样的,这就是碰撞。

5)、不可逆。即由已知的MD5值,无法还原出它的原始数据的。当然,很多网站可以查询md5的原始数据,是因为事先已经保存了数以万计的原始数据以及它的hash值,我们查询时,只是进行已知数据的查询匹配。

由于hash算法是不可逆的, 所以不存在解密的逻辑。

6)、不安全。由于md5无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。

7)、我国著名教授王小云已经破解了包括MD5、SHA-1在内的5个国际通用哈希函数算法。

MD5值的获取:

很多平台自带md5值的获取,例如,可以用下面的命令计算一个文件的md5值:

% md5 urlinfo.json 
MD5 (urlinfo.json) = e58b910fda6a2aed3d00fde20a28c0a7

MD5值的获取:python代码:

1、 不加盐(salt)的md5值

利用python获取md5值的代码如下:

from hashlib import md5

obj = md5()
obj.update("hello python!!!".encode("utf-8"))

bs = obj.hexdigest()
print(bs)

运行结果:

% python3 md5_test.py
ffd986dc69195bd6c1397a76e0df6cc4

用在线网站进行md5值的获取:
MD5算法:利用python进行md5 hash值的获取
可以看到,和我们用python算出的结果一样。

2、 加盐(salt)的md5值

from hashlib import md5
salt = "aabbccddeeff"
obj = md5(salt.encode("utf-8"))  # 加盐
obj.update("hello python!!!".encode("utf-8"))

bs = obj.hexdigest()
print(bs)

运行结果:

% python3 md5_test.py
355d1341087e44f53551293193fd706c

3、 扩展sha256的md5值

from hashlib import sha1, sha256
sha = sha256(b'salt')
sha.update(b'hello python!!!')
print(sha.hexdigest())

运行结果:

python3 md5_test.py
24d50be77cb3d092520041983964d9f5daa8962c19f4fb6318bd2764406aab64

说明:不论是sha1, sha256, md5都属于摘要算法.,都是在计算hash值(散列值),只是散列的程度不同而已。文章来源地址https://www.toymoban.com/news/detail-466775.html

到了这里,关于MD5算法:利用python进行md5 hash值的获取的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 用git bash调用md5sum进行批量MD5计算

    用git bash调用md5sum进行批量MD5计算

    对于非常大的文件或者很重要的文件,在不稳定的网络环境下,可能文件的某些字节会损坏。此时,对文件计算MD5即可以校验其完整性。比如本次的 OpenStreetMap 导出包,我的学弟反馈说,有朋友通过网盘下载无法解压,并建议我增加每个文件的MD5校验。 对于文件非常多的情况

    2024年01月24日
    浏览(12)
  • 哈希算法--MD5算法

    哈希算法--MD5算法

    哈希算法也称摘要算法、散列算法,哈希函数的输入为一段 可变长度x ,输出一 固定长度串 ,该串被称为 x的哈希值 。 Hash函数满足以下几个基本需求: (1)输入值x为任意长度 (2)输出值长度固定 (3)单向函数,算法不可逆 (4)唯一性,很难找到两个不同的输入会得到

    2023年04月18日
    浏览(15)
  • MD5算法

    MD5算法

    一、引言 MD5(Message-Digest Algorithm 5)是一种广泛应用的密码散列算法,由Ronald L. Rivest于1991年提出。MD5算法主要用于对任意长度的消息进行加密,将消息压缩成固定长度的摘要(通常为128位)。在密码学、网络安全等领域有着广泛的应用。本文将从算法原理、优缺点及替代方

    2024年02月04日
    浏览(10)
  • MD5 算法

    MD5(Message Digest Algorithm 5)是消息摘要算法的一种,它可以将任意长度的“消息”(也可以是文件)计算出一个固定长度的“摘要”,通常是128位。MD5广泛应用于数字签名、数据完整性校验、密码存储等领域。在Java中,可以使用java.security.MessageDigest类来实现MD5算法。 MD5算法的流

    2024年02月05日
    浏览(8)
  • 为什么MD5算法不可逆,但网上有很多网站声称能够解密MD5

    为什么MD5算法不可逆,但网上有很多网站声称能够解密MD5

    我们要明白,MD5不是加密算法,而是一种信息摘要算法,主要用于保证数据的完整性,以及数据不被篡改。既然不是加密算法,那么就不存在解密的说法,但是为什么网上有很多网站声称能够解密MD5呢? MD5算法不可逆 Md5是计算机安全领取常用的一种密码散列函数,主要用于

    2024年02月11日
    浏览(10)
  • vue3利用spark-md5计算文件的md5值

    先要安装spark-md5包: import SparkMD5 from ‘spark-md5’ 看官网:https://github.com/search?q=spark-md5 对于小文件来说通常直接读取其文本文件(字符串),计算其md5。 对于大文件,如果直接readAsText读取,速度则会非常慢,甚至浏览器崩溃,遂利用readAsArrayBuffer(file)读取其二进制来计算m

    2024年02月16日
    浏览(4)
  • postman 请求参数进行md5加密

    1.在代码片段中,使用 JavaScript 将需要加密的参数拼接成一个字符串,例如 2.安装 CryptoJS 库。在 Postman 的 \\\"Pre-request Script\\\" 或 \\\"Tests\\\" 中,使用以下命令安装 CryptoJS: 3.在代码片段中,使用 CryptoJS 对拼接后的字符串进行 MD5 加密,转化为小写字符串,赋值给请求变量。例如:

    2024年02月05日
    浏览(15)
  • 算法基础--MD5算法介绍

    算法基础--MD5算法介绍

      MD5再开发过程中经常碰到的一种算法,因此感觉有必要对其原理进行更深入的了解一下。   散列函数,也称作哈希函数,消息摘要函数,单向函数或者杂凑函数。散列函数主要用于验证数据的完整性。通过散列函数,可以创建消息的“数字指纹”,消息接收方可以通过

    2024年02月08日
    浏览(6)
  • java 使用hutool工具进行MD5加密

    引入依赖 MD5加密

    2024年02月16日
    浏览(8)
  • 在前端对登录密码进行加密,md5+盐值

    在前端对登录密码进行加密,md5+盐值

    场景:前端制定规则账号密码,后端不进行参与,完全就是前端进行校验 缺点:对于现在网络发达的时代,大部分人随便攻击你的网站就可以看到你的账号密码这样就可以轻松进入你的网站、不安全。 优点:基本没有,除非就是临时搭建 不需要后端 当然这是我开发时候的场

    2024年02月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包