hashlib —— Python 的 md5 和 sha1 加密
python的md5和sha1加密
0. md5 与 sha1
MD5 的全称是 Message-Digest Algorithm 5(信息-摘要算法)。128 位长度。目前 MD5 是一种不可逆算法。具有很高的安全性。它对应任何字符串都可以加密成一段唯一的固定长度的代码。
- md5 的应用场景:
- 加密网站注册用户的密码。 (但去年的各大网站密码泄漏事件确实让人蛋疼……)
- 网站用户上传图片 / 文件后,计算出 MD5 值作为文件名。(MD5可以保证唯一性)
- key-value数据库中使用MD5值作为key。
- 比较两个文件是否相同。(大家在下载一些资源的时候,就会发现网站提供了MD5值,就是用来检测文件是否被篡改)
……
- md5 的应用场景:
- SHA1 的全称是 Secure Hash Algorithm(安全哈希算法) 。SHA1 基于MD5,加密后的数据长度更长,它对长度小于 264 的输入,产生长度为 160 bit 的散列值。比 MD5 多 32 位。因此,比 MD5 更加安全,但SHA1的运算速度就比 MD5 要慢了。
1. hashlib 下的使用
import hashlib
text = 'This is a md5 text.'text_md5 = hashlib.md5(text.encode('utf-8'))
text_md5.hexdigest()text_sha1 = hashlib.sha1(text.encode('utf-8'))
text_sha1.hexdigest()# 或者采用如下的方式进行散列
m = hashlib.md5()
m.update(text.encoding('utf-8'))
m.hexdigest()
对要散列编码的文本,必须要重新指定编码,一般选择utf-8
,详见 “TypeError: Unicode-objects must be encoded before hashing”。
2. 大文件的哈希散列
def gen_md5(f):f_md5 = hashlib.md5()while True:data = f.read(1024)if not data:break# not '': 返回为 Truef_md5.update(data)return f_md5.hexdigest()
一个更 python 风格的实现:
def md5(fname):hash_md5 = hashlib.md5()with open(fname, "rb") as f:for chunk in iter(lambda: f.read(4096), b""):hash_md5.update(chunk)return hash_md5.hexdigest()
iter(lambda: f.read(4096), b”“):
- 第一个参数(lambda: f.read(4096))为 callable 对象,这里为函数对象;
- 第二个参数为 sentinel,当不断地调用第一个参数,返回为 sentinel 时,迭代终止;
hashlib —— Python 的 md5 和 sha1 加密相关推荐
- python实现md5和sha1加密
python的内置库hashlib主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 md5加密 import hashlibdata = 'test' ...
- MD5和SHA1加密
MD5和SHA1加密 MD5和SHA1算法对数据进行加密 例: 'MD5加密 Dim UserPWD as String UserPWD = System.Web.Security.FormsAuth ...
- ASP.Net中MD5和SHA1加密的几种方法
首先简单介绍一下MD5和SHA1: MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Mit Laboratory for Computer Scie ...
- MD5 base64 sha1 加密,解密
Objective-c实现MD5和SHA1算法相对还是比较简单的,可以直接调用系统的C/C++共享库来实现调用 MD5即Message Digest Algorithm 5(信息-摘要算法 5),用于 ...
- 不要再使用MD5和SHA1加密密码了!
为什么不要用MD5和SHA1,下面会详细讲到! <?phpdefine('testtime', 50000); $algos = hash_algos(); //返回一个数值索引的数组, 包含了 ...
- 【Python】计算文件的MD5、SHA1、SHA256值(校验文件完整性)
引言 从网络上下载大文件时,官网一般都会提供一个MD5.SHA1或SHA256值: 很多同学可能会好奇这些东西到底是干嘛的?其实这是用来校验文件完整性的.因为从网络上下载大文件具有不确定性,可能会受很 ...
- Java对于数据加密与解密的实现EncryptUtil、MD5与sha-1
前言 假设用户在创建账户的时候,会输入账户名和密码,此时,密码会存储到数据库中.如果我们的数据库被黑客黑了,数据泄露,那么黑客就得到了数据库中所有用户的账户密码,这不安全. 如果我们对于用户的密码进行 ...
- Python hashlib 加密方法(MD5、SHA1、SHA256、SHA52)
Python hashlib 加密 Python 提供了 hashlib 模块来进行加密操作.在下面的文章中,我们将介绍 hashlib 模块的常用加密算法. 1. hashlib 简介 hashli ...
- 【Python】hashlib模块实现MD5加密
MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被计算机安全领域广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value), ...
最新文章
- 5 zabbix 添加host_运维监控实战篇,zabbix自动发现和自动注册图文详解
- C++对象内存模型学习
- 究极日月服务器维护时间,超激斗梦境9月25日终极测试服务器维护公告_超激斗梦境9月25日更新了什么_玩游戏网...
- java 生成缩略图类_JAVA生成【缩略图】方法
- 喜用神最正确的算法_各种电磁仿真算法的优缺点和适用范围(FDTD, FEM和MOM等)...
- python gps与高德地图poi_Python——使用高德API获取指定城指定类别POI并实现XLSX文件合并...
- 机器学习与计算机视觉(深度学习)
- spring基础--bean
- Windows Server 2008远程桌面多用户登陆的配置方法
- 图片放大软件—ON1 Resize AI 2022兼容m1
- Linux 上部署 Seafile 9.0.x 专业版(Seafile Server端)——踩一路坑,溅一身水
- 如何制作纯文字视频快闪视频
- 全国计算机信息高新技术和全国计算机等级考试区别
- 美国主机中的RAID磁盘是什么意思?
- 特种设备制造许可证多少钱
- 登陆成功页面5秒跳转
- ContextCapture Center Update 18
- 微机原理与接口技术——8255A的使用方法
- C语言编程之.H文件与.C文件的关系
- expect pexpect on Windows
热门文章
- linux中.开头的变量,linux中的变量
- HTTP请求报文分析
- php_connect_nonb,net2ftp无法显示文件列表输出为空
- MATLAB里sortrows是什么意思,Matlab中sortrows函数解析
- php 开启memcache,php开启与安装 memcache
- 深度学习的应用及主流框架
- Qt总结之四:读取文件夹所有文件
- 【Tensorflow】相关面试题整理(转)
- 深度学习相关优化器以及在tensorflow的使用(转)
- android 水印背景功能,Android 给View添加剧复的文字水印背景 相似钉钉通信录的背景效果...