前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python中内置hash模块hashlib

python中内置hash模块hashlib

作者头像
全栈程序员站长
发布2022-08-15 20:20:16
3810
发布2022-08-15 20:20:16
举报
文章被收录于专栏:全栈程序员必看

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

一、什么是hash

hash,是一种对数据进行变换的算法,这种算法有以下特点: 1.不定长输入,定长输出。 2.不能被还原。由于算法过程中丢弃了一些数据,但是丢弃的是什么,丢弃了多少,谁也不知道,所以无法被还原,有点类似于有损压缩,丢弃的不可能被找回。 3.相同输入,相同输出。 4.抗碰撞性。即碰撞(不同输入产生相同输出)的几率特别小。 5.抗篡改性。输入稍有改动,输出差别非常大。 因为hash算法的以上五个特点,所以它主要有以下几个用途: 1.数据结构(哈希表)。对于以键值对形式存储的数据,直接使用键地散列值作为存储地址,存储值。查找时就可以精准查找,不用遍历法一一比对那么麻烦。这是利用了hash的1,3,4特点。 2.密码储存。服务端现在都不存储用户名和密码了,直接存储它们的散列值,用户输入用户名和密码后也生成散列值,和数据库中的进行比对。这样即使数据被盗了 ,黑客也获取不了用户的密码。这是利用了hash的2,3,4,5特点。 3.文件签名。对文件签名,生成签名的散列值。在对方收到文件后对秘钥进行hash计算,看得到的散列值是否与签名相同。这是利用了hash的2,3,4,5特点。 4.文件校验。传输前后进行散列值的比较,同则文件没有损坏或篡改,不同则有损坏或篡改。比如有的网站为了禁止用户上传同样的视频,会对已上传的文件存储其散列值,通过比对新视频散列值是否已存在判断是否为重复上传的视频。如果你想上传相同视频,只要改掉一帧即可。这是利用了hash的2,3,4,5特点。

二、python中内置hash模块hashlib

hashlib模块提供了多种安全散列和消息摘要算法的公共接口。算法有sha1()、sha224()、sha256()、sha384()、sha512()和blake2b()、blake2s()。 hashlib用起来非常简单:

代码语言:javascript
复制
import hashlib
#第一步架锅
hs=hashlib.sha256()
#第二步放菜
hs.update(b'zhang')
#第三步出锅
hs_mg=hs.hexdigest()
print(hs_mg)
代码语言:javascript
复制
14bbfb46cb710ab5cf477269d856fc79d4d5b31cfbe466a37a43b1537e0693a4

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、什么是hash
  • 二、python中内置hash模块hashlib
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档