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. 22.dll调用技术

    1.dll文件: #include <Windows.h> _declspec(dllexport) void message_hello() { MessageBoxA(, ); } _ ...

  2. Swift学习笔记(1)--基本语法

    1.分号; 1>Swift不要求每个语句后面跟一个分号作为语句结束的标识,如果加上也可以,看个人喜好 2>在一行中写了两句执行语句,需要用分号隔开,比如 let x = 0; printl ...

  3. 【2017 Multi-University Training Contest - Team 1 1002】Balala Power!

    [Link]:http://acm.hdu.edu.cn/showproblem.php?pid=6034 [Description] 给你n个字符串; 每个字符串都仅由小写字母组成; 然后,你可以把 ...

  4. Volley简单学习使用五—— 源代码分析三

    一.Volley工作流程图: 二.Network     在NetworkDispatcher中须要处理的网络请求.由以下进行处理: NetworkResponse networkResponse = ...

  5. poj Transferring Sylla(怎样高速的推断一个图是否是3—连通图,求割点,割边)

    Transferring Sylla 首先.什么是k连通图? k连通图就是指至少去掉k个点使之不连通的图. 题目: 题目描写叙述的非常裸.就是给你一张图要求你推断这图是否是3-连通图. 算法分析: / ...

  6. server环境信息【C#代码获取】

    server环境信息[C#代码获取] public class ServicesMessage { [DllImport("kernel32", CharSet = CharSet ...

  7. ios in-house 公布整个过程(startssl认证)

    首先大体说一下步骤: 1.申请苹果enterprise 账号 为应用生成app id,provision profile等 详见:http://www.th7.cn/Program/IOS/20131 ...

  8. python-openpyxl安装

    今天在安装openpyxl的时候,一直提示错误,后来才发现仅仅安装它还不够,还需要其他两个库的支持1.安装jdcal2.安装et_xmlfile这两个库安装的方法,都是直接在命令行下面,进入库文件se ...

  9. git --- ! [rejected] master -> master (non-fast-forward)

    如何解决failed to push some refs to git Administrator@PC-20150110FGWU /K/cocos2d/yc (master) $ git push ...

  10. POJ 2391 Floyd+二分+拆点最大流

    题意: 思路: 先Floyd一遍两两点之间的最短路 二分答案 建图 跑Dinic 只要不像我一样作死#define int long long 估计都没啥事-- 我T到死辣--.. 最后才改过来-- ...