利用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判断值是否在list或set中的性能对比分析
Apr 16 Python
Python 3.x 连接数据库示例(pymysql 方式)
Jan 19 Python
Python虚拟环境virtualenv的安装与使用详解
May 28 Python
PyChar学习教程之自定义文件与代码模板详解
Jul 17 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
Sep 11 Python
Python类中方法getitem和getattr详解
Aug 30 Python
解决Python import docx出错DLL load failed的问题
Feb 13 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
Mar 13 Python
使用Nibabel库对nii格式图像的读写操作
Jul 01 Python
python爬虫---requests库的用法详解
Sep 28 Python
python中pandas.read_csv()函数的深入讲解
Mar 29 Python
Python sklearn分类决策树方法详解
Sep 23 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
fleaphp crud操作之find函数的使用方法
2011/04/23 PHP
PHP网站开发中常用的8个小技巧
2015/02/13 PHP
PHP基于ORM方式操作MySQL数据库实例
2017/06/21 PHP
Js 本页面传值实现代码
2009/05/17 Javascript
js实现上传图片之上传前预览图片
2013/03/25 Javascript
JavaScript中判断整数的多种方法总结
2014/11/08 Javascript
AngularJS控制器详解及示例代码
2016/08/16 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
jQuery实现动态添加tr到table的方法
2016/12/26 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
2017/03/05 Javascript
使用gulp搭建本地服务器并实现模拟ajax
2017/04/05 Javascript
解析Vue 2.5的Diff算法
2017/11/28 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
2020/08/13 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
详解Python中for循环的使用方法
2015/05/14 Python
python操作excel的方法(xlsxwriter包的使用)
2018/06/11 Python
python科学计算之narray对象用法
2019/11/25 Python
如何从csv文件构建Tensorflow的数据集
2020/09/21 Python
PatPat香港:婴童服饰和亲子全家装在线购物
2020/09/27 全球购物
酒店采购员岗位职责
2014/03/14 职场文书
大学生求职计划书
2014/04/30 职场文书
英文求职信范文
2014/05/23 职场文书
董事长秘书工作职责
2014/06/10 职场文书
派出所副所长四风问题个人整改措施思想汇报
2014/10/13 职场文书
2014年辅导员工作总结
2014/11/18 职场文书
2015年基层党建工作总结
2015/05/14 职场文书
信息技术教研组工作总结
2015/08/13 职场文书
职场干货:简历中的自我评价应该这样写!
2019/05/06 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书
美甲店的创业计划书模板
2019/08/23 职场文书
《家庭教育》读后感3篇
2019/12/18 职场文书
Go 语言中 20 个占位符的整理
2021/10/16 Golang
nginx容器方式反向代理实战
2022/04/18 Servers