python的md5和sha1加密

0. md5 与 sha1

  • MD5 的全称是 Message-Digest Algorithm 5(信息-摘要算法)。128 位长度。目前 MD5 是一种不可逆算法。具有很高的安全性。它对应任何字符串都可以加密成一段唯一的固定长度的代码。

    • md5 的应用场景:

      • 加密网站注册用户的密码。 (但去年的各大网站密码泄漏事件确实让人蛋疼……)
      • 网站用户上传图片 / 文件后,计算出 MD5 值作为文件名。(MD5可以保证唯一性)
      • key-value数据库中使用MD5值作为key。
      • 比较两个文件是否相同。(大家在下载一些资源的时候,就会发现网站提供了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 加密相关推荐

  1. python实现md5和sha1加密

    python的内置库hashlib主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 md5加密 import hashlibdata = 'test' ...

  2. MD5和SHA1加密

    MD5和SHA1加密 MD5和SHA1算法对数据进行加密 例: 'MD5加密 Dim UserPWD as String UserPWD = System.Web.Security.FormsAuth ...

  3. ASP.Net中MD5和SHA1加密的几种方法

    首先简单介绍一下MD5和SHA1: MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Mit Laboratory for Computer Scie ...

  4. MD5 base64 sha1 加密,解密

    Objective-c实现MD5和SHA1算法相对还是比较简单的,可以直接调用系统的C/C++共享库来实现调用 MD5即Message Digest Algorithm 5(信息-摘要算法 5),用于 ...

  5. 不要再使用MD5和SHA1加密密码了!

    为什么不要用MD5和SHA1,下面会详细讲到! <?phpdefine('testtime', 50000); $algos = hash_algos(); //返回一个数值索引的数组, 包含了 ...

  6. 【Python】计算文件的MD5、SHA1、SHA256值(校验文件完整性)

    引言 从网络上下载大文件时,官网一般都会提供一个MD5.SHA1或SHA256值: 很多同学可能会好奇这些东西到底是干嘛的?其实这是用来校验文件完整性的.因为从网络上下载大文件具有不确定性,可能会受很 ...

  7. Java对于数据加密与解密的实现EncryptUtil、MD5与sha-1

    前言 假设用户在创建账户的时候,会输入账户名和密码,此时,密码会存储到数据库中.如果我们的数据库被黑客黑了,数据泄露,那么黑客就得到了数据库中所有用户的账户密码,这不安全. 如果我们对于用户的密码进行 ...

  8. Python hashlib 加密方法(MD5、SHA1、SHA256、SHA52)

    Python hashlib 加密 Python 提供了 hashlib 模块来进行加密操作.在下面的文章中,我们将介绍 hashlib 模块的常用加密算法. 1. hashlib 简介 hashli ...

  9. 【Python】hashlib模块实现MD5加密

    MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被计算机安全领域广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value), ...

最新文章

  1. 5 zabbix 添加host_运维监控实战篇,zabbix自动发现和自动注册图文详解
  2. C++对象内存模型学习
  3. 究极日月服务器维护时间,超激斗梦境9月25日终极测试服务器维护公告_超激斗梦境9月25日更新了什么_玩游戏网...
  4. java 生成缩略图类_JAVA生成【缩略图】方法
  5. 喜用神最正确的算法_各种电磁仿真算法的优缺点和适用范围(FDTD, FEM和MOM等)...
  6. python gps与高德地图poi_Python——使用高德API获取指定城指定类别POI并实现XLSX文件合并...
  7. 机器学习与计算机视觉(深度学习)
  8. spring基础--bean
  9. Windows Server 2008远程桌面多用户登陆的配置方法
  10. 图片放大软件—ON1 Resize AI 2022兼容m1
  11. Linux 上部署 Seafile 9.0.x 专业版(Seafile Server端)——踩一路坑,溅一身水
  12. 如何制作纯文字视频快闪视频
  13. 全国计算机信息高新技术和全国计算机等级考试区别
  14. 美国主机中的RAID磁盘是什么意思?
  15. 特种设备制造许可证多少钱
  16. 登陆成功页面5秒跳转
  17. ContextCapture Center Update 18
  18. 微机原理与接口技术——8255A的使用方法
  19. C语言编程之.H文件与.C文件的关系
  20. expect pexpect on Windows

热门文章

  1. linux中.开头的变量,linux中的变量
  2. HTTP请求报文分析
  3. php_connect_nonb,net2ftp无法显示文件列表输出为空
  4. MATLAB里sortrows是什么意思,Matlab中sortrows函数解析
  5. php 开启memcache,php开启与安装 memcache
  6. 深度学习的应用及主流框架
  7. Qt总结之四:读取文件夹所有文件
  8. 【Tensorflow】相关面试题整理(转)
  9. 深度学习相关优化器以及在tensorflow的使用(转)
  10. android 水印背景功能,Android 给View添加剧复的文字水印背景 相似钉钉通信录的背景效果...