利用Python如何生成hash值示例详解


Posted in Python onDecember 20, 2017

一、介绍

如果在Python中需要对用户输入的密码或者其他内容进行加密,首选的方法是生成hash值。

在Python中可以利用二个模块来进行:

      - crypt

      - hashlib

二、crypt

(一)crypt的主要方法和常量

名称 描述
md5(…) 利用md5算法加密
sha1(…) 利用sha1算法加密
sha224(…) 利用sha224算法加密
sha256(…) 利用sha256算法加密
sha384(…) 利用sha384算法加密
sha512(…) 利用sha512算法加密

(二)使用说明与示例

使用crypt.crypt(…)进行hash加密的时候,需要提供二个参数:

     - 加密内容

     - salt

如果不特别指定salt,系统就会调用crypt.mksalt(…)生成一个salt

如果想要以特定的加密算法生成salt就应该使用下面的命令:

>>>salt = crypt.mksalt(crypt.METHOD_SHA512)
>>> salt
'$6$s8Q3eNP6urKZb3AK'

然后再进行数据加密:

>>> hash = crypt.crypt("helloworld",salt)
>>> hash
'$6$s8Q3eNP6urKZb3AK$L0O5cqHRU.1f170bV2KrjF3LkLL54So442TqUIsk.wYtCtOSD4Tyt./fj6W6Y.EzrbNm00grA4yPPhXGya2ie1'

三、hashlib

(一)hashlib的主要方法和常量

名称 描述
md5(…) 利用md5算法加密
sha1(…) 利用sha1算法加密
sha224(…) 利用sha224算法加密
sha256(…) 利用sha256算法加密
sha384(…) 利用sha384算法加密
sha512(…) 利用sha512算法加密

**(二)Hash对象特有的方法

如果你利用 hashlib 生成了一个Hash对象,那么这个Hash对象会包含如下方法:

名称 描述
update(arg) 可以重复利用指定了特殊加密算法的Hash对象,对 arg 进行加密
digest(…) 以字符形式返回加密内容
hexdigest(…) 以16进制形式返回加密内容
copy(…) 为了达到重复利用Hash对象的目的,而克隆Hash对象

(三)示例

1、直接使用hashlib方法

>>> hashlib.sha224("Nobody inspects the spammish repetition")
<sha224 HASH object @ 0x7f99432c5b28>
>>> hashlib.sha224("Nobody inspects the spammish repetition").hexdigest()
'a4337bc45a8fc544c03f52dc550cd6e1e87021bc896588bd79e901e2'

2、直接使用Hash对象中的方法

>>> m = hashlib.md5()
>>> m
<md5 HASH object @ 0x7f99432c5468>
>>> m.update("Nobody inspects")
>>> m.digest()
'>\xf7)\xcc\xf0\xccV\x07\x9c\xa5F\xd5\x80\x83\xdc\x12'
>>> m.update(" the spammish repetition")
>>> m.digest()
'\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9'
>>> m.hexdigest()
'bb649c83dd1ea5c9d9dec9a18df0ffe9'

我是如何 Python 一句话校验软件哈希值的

MD5

python -c "import hashlib,sys;print hashlib.md5(open(sys.argv[1],'rb').read()).hexdigest()" Shadowsocks.exe

校验 下载软件是否被“中间人动过手脚”

例如:校验shadowsocks

SHA-1

python -c "import hashlib,sys;print hashlib.sha1(open(sys.argv[1],'rb').read()).hexdigest()" Shadowsocks.exe

SHA-256

python -c "import hashlib,sys;print hashlib.sha256(open(sys.argv[1],'rb').read()).hexdigest()" Shadowsocks.exe

SHA-512

python -c "import hashlib,sys;print hashlib.sha512(open(sys.argv[1],'rb').read()).hexdigest()" Shadowsocks.exe

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python根据经纬度计算距离示例
Feb 16 Python
Python中使用tarfile压缩、解压tar归档文件示例
Apr 05 Python
Python中的数学运算操作符使用进阶
Jun 20 Python
python使用super()出现错误解决办法
Aug 14 Python
idea创建springMVC框架和配置小文件的教程图解
Sep 18 Python
一看就懂得Python的math模块
Oct 21 Python
对python 自定义协议的方法详解
Feb 13 Python
python实现吃苹果小游戏
Mar 21 Python
Python第三方包PrettyTable安装及用法解析
Jul 08 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
Feb 07 Python
bat批处理之字符串操作的实现
Mar 16 Python
JAVA SpringMVC实现自定义拦截器
Mar 16 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
Dec 20 #Python
python实现神经网络感知器算法
Dec 20 #Python
Python代码实现KNN算法
Dec 20 #Python
详解appium+python 启动一个app步骤
Dec 20 #Python
浅谈Django自定义模板标签template_tags的用处
Dec 20 #Python
Python实现感知机(PLA)算法
Dec 20 #Python
详解Python nose单元测试框架的安装与使用
Dec 20 #Python
You might like
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
php单件模式结合命令链模式使用说明
2008/09/07 PHP
JavaScript Cookie显示用户上次访问的时间和次数
2009/12/08 Javascript
js+数组实现网页上显示时间/星期几的实用方法
2013/01/18 Javascript
Javascript中call和apply函数的比较和使用实例
2015/02/03 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
JavaScript获取指定元素位置的方法
2015/04/08 Javascript
深入理解JavaScript编程中的同步与异步机制
2015/06/24 Javascript
Node.js中的process.nextTick使用实例
2015/06/25 Javascript
常见JS验证脚本汇总
2015/12/01 Javascript
JavaScript的History API使搜索引擎抓取AJAX内容
2015/12/07 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
2017/02/27 Javascript
微信公众号菜单配置微信小程序实例详解
2017/03/31 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
2017/04/01 Javascript
nodeJS实现简单网页爬虫功能的实例(分享)
2017/06/08 NodeJs
vue 使用鼠标滚动加载数据的例子
2019/10/31 Javascript
[01:30:55]VG vs Mineski Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
python判断输入日期为第几天的实例
2018/11/13 Python
Django unittest 设置跳过某些case的方法
2018/12/26 Python
python实现一个简单的ping工具方法
2019/01/31 Python
Python3简单实现串口通信的方法
2019/06/12 Python
Python利用matplotlib做图中图及次坐标轴的实例
2019/07/08 Python
使用python爬取抖音视频列表信息
2019/07/15 Python
python读写csv文件的方法
2019/08/13 Python
Python的对象传递与Copy函数使用详解
2019/12/26 Python
python绘制玫瑰的实现代码
2020/03/02 Python
数字漫画:comiXology
2020/06/13 全球购物
银行出纳岗位职责
2013/11/25 职场文书
高中运动会入场词
2014/02/14 职场文书
《爱如茉莉》教后反思
2014/04/12 职场文书
学习保证书范文
2014/04/30 职场文书
2014优秀党员事迹材料
2014/08/14 职场文书
KTV门卫岗位职责
2014/10/09 职场文书
出纳试用期自我评价
2015/03/10 职场文书
安全责任协议书范本
2016/03/23 职场文书
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏