python hashlib sha1和MD5哈希算法
来源:互联网 发布:阿里云cdn如何配置 编辑:程序博客网 时间:2024/05/18 05:58
python hashlib库提供了常用的哈希算法。
如MD5 SHA1 等
今天我们开坑sha1
举个例子,你写了一篇文章,内容是一个字符串’how to use python hashlib - by Michael’,并附上这篇文章的摘要是’2d73d4f15c0db7f5ecb321b6a65e5d6d’。如果有人篡改了你的文章,并发表为’how to use python hashlib - by Bob’,你可以一下子指出Bob篡改了你的文章,因为根据’how to use python hashlib - by Bob’计算出的摘要不同于原始文章的摘要。
可见,摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡改过。
摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数,计算f(data)很容易,但通过digest反推data却非常困难。而且,对原始数据做一个bit的修改,都会导致计算出的摘要完全不同。
所以哈希算法基本上说很难可逆。
import hashlibsha1 = hashlib.sha1()sha1.update('how to use sha1 in ')sha1.update('python hashlib?')print sha1.hexdigest()
md5 = hashlib.md5()md5.update('how to use md5 in ')md5.update('python hashlib?')print md5.hexdigest()
md5生成一个128bit的结果,通常用32位的16进制字符串表示
sha1生成一个160bit的结果,通常用40位的16进制字符串表示
SHA256和SHA512,不过越安全的算法越慢,而且摘要长度更长
注意:哈希算法又称为摘要算法,它生成的是固定长度的不可逆的混杂字符串。不要与加密算法混为一谈,因为加密对应着解密。而哈希算法很难很难解密。
通常为了保护用户的隐私,我们不会选择直接将明文的密码存入数据库,因为一但数据库泄露,用户的个人信息将全部丢失。
通常会对密码进行MD5,SHA1等方式哈希后存入数据库。
但是这样数据库被盗后,黑客虽然不能暴力破解密码,但是黑客可以通过对用户常见密码进行哈希,用得到的值对比仍然会泄露。
这里就提到另一种方法“加盐”
我们不单单对密码进行加密,而是将密码+“特性字符串”的集合进行加密。大大增加了安全性。
- python hashlib sha1和MD5哈希算法
- Python基础-摘要算法hashlib中的MD5和SHA1
- hashlib —— Python 的 md5 和 sha1 加密
- python:自定义函数、hashlib(md5、sha1)、base64
- python模块之hashlib: md5和sha算法
- python模块之hashlib: md5和sha算法
- python模块之hashlib: md5和sha算法
- python学习——hashlib.md5摘要算法(哈希算法)
- hashlib穷举字典破解md5,sha1
- Python中摘要算法MD5,SHA1讲解
- SHA1和MD5算法详解和源码
- SHA1和MD5算法详解和源码
- SHA1和MD5算法详解和源码
- SHA1和MD5算法详解和源码
- md5模块和hashlib模块
- mfc实现哈希Hash算法(MD5和SHA1)加密
- python中的md5和sha1加密算法使用
- python的md5和sha1加密
- 拆分json数据,重组打包成新的json数组
- 平衡二叉树(AVL树)
- Android Studio Kotlin 开发环境配置
- 使用JAVA线程写的一个UDP简易通讯程序(三)
- 对泰坦尼克号案例进行数据挖掘
- python hashlib sha1和MD5哈希算法
- android performClick使用说明
- android studio编译的时候提示gradle版本不对
- 运用贝塞尔曲线描绘android翻页效果
- Count on a tree SPOJ
- C++更改文件名
- PHP$a[]和$a的区别
- CentOs6.7 + hadoop2.8 安装
- Android开发之实现滑动RecyclerView,浮动按钮的显示和隐藏(一)