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
f_md5.update(data)
return f_md5.hexdigest()

hashlib —— Python 的 md5 和 sha1 加密的更多相关文章

  1. python 中md5 和 sha1 加密, md5 + os.urandom 生成全局唯一ID

    首先先来介绍一下md5 和 sha1 的概念 MD5 MD5的全称是Message-Digest Algorithm 5(信息-摘要算法).128位长度.目前MD5是一种不可逆算法. 具有很高的安全性 ...

  2. MD5、SHA1加密java 16位32位

    MD5.SHA1加密java 16位32位 import java.math.BigInteger; import java.security.MessageDigest; public class ...

  3. python的md5和base64加密

    在用jmeter测试接口时,有的请求参数会加密,例如,回流接口:http://ip:port/oms-gateway-datareflow-mq/orderReflow/tmsPracticeActi ...

  4. C#中 MD5和SHA1加密代码

    Pwd = FormsAuthentication.HashPasswordForStoringInConfigFile(entity.Pwd, "MD5"); Pwd = For ...

  5. MD5和SHA-1

    MD5和SHA-1都是我们耳熟能详的术语了,很多人可能知道他们跟加密有关系,但是他们是怎么做到加密的,他们各自的特点又是什么.我来简单的讲一讲. MD5和SHA-1都被称作哈希(Hash)函数,用过J ...

  6. python之模块hashlib(提供了常见的摘要算法,如MD5,SHA1等等)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块hashlib(提供了常见的摘要算法,如MD5,SHA1等等) #http://www.c ...

  7. python接口自动化测试二十七:密码MD5加密 ''' MD5加密 ''' # 由于MD5模块在python3中被移除 # 在python3中使用hashlib模块进行md5操作 import hashlib # 待加密信息 str = 'asdas89799,.//plrmf' # 创建md5对象 hl = hashlib.md5() # Tips # 此处必须声明encode # 若写法为

    python接口自动化测试二十七:密码MD5加密   ''' MD5加密 '''# 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作import has ...

  8. java的sha1加密,转化为python版本

    java的加密方法如下: public class EncryptUtil { /** 16进制 : 16 */ private static final int HEX = 16; /** SHA: ...

  9. hashlib python 加密框架

    python3中digest()和hexdigest()区别 转自:https://www.cnblogs.com/yrxns/p/7727471.html hashlib是涉及安全散列和消息摘要,提 ...

随机推荐

  1. C++ BigInteger模板

    #include <cstdio> #include <cstring> #include <string> #include <iostream> # ...

  2. JavaScript 与Document

    JavaScript JavaScript   是脚本语言, 需要有宿主文件,  他的宿主文件是HTML文件. 可以写在head中  body中 和</heml>之后   一般写在< ...

  3. Concurrent.Thread.js

    (function(){ if ( !this.Data || (typeof this.Data != 'object' && typeof this.Data != 'functi ...

  4. 【Struts2】Struts2纯手工安装、配置以及Helloworld,以最新版struts 2.3.20 GA做样例

    很多网上的教程对Struts2的配置.安装弄得不明不白,非常多高手以为小白是什么都懂.很多细节上面的地方没有说明清楚,甚至还有在Maven上面解说的,要知道Struts2跟Maven没有半点的关系.全 ...

  5. Qt Installer Framework的学习(二)

    Qt Installer Framework的学习(二) Qt Installer Framework的一些操作能够使用最常见的Qt项目来表示,也就是说,书写pro文件,使用qmake执行之,除了能够 ...

  6. git 版本管理工具说明

    $ git init                 (初始化本地仓库,会生成.git 文件夹  .git 文件夹里存储了所有的版本信息.标记等内容) $ git add .              ...

  7. HTTP基础知识整理

    http请求由三部分组成,分别是:请求行.消息报头.请求正文 HTTP(超文本传输协议)是一个基于请求与响应模式的.无状态的.应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接 ...

  8. centos 6.7下安装rabbitmq 3.6.6过程

    准备,请确保有root权限或者sudo权限,不然不用继续看下去了. 1.erland的安装 首先测试一下是否已经安装了erlang,命令 rpm -qa | grep erlang 若没有安装,则 y ...

  9. Kinect 开发 —— Kinect studio

    This tool can record all the data coming into an application from a Kinect unit. You can then view, ...

  10. HDU——T 3746 Cyclic Nacklace

    http://acm.hdu.edu.cn/showproblem.php?pid=3746 Time Limit: 2000/1000 MS (Java/Others)    Memory Limi ...