Python使用hashlib模块生成给定文本数据的签名摘要信息(包括各种哈希函数)
今天晚上遇上一个需要使用签名摘要的问题,想到了研究生期间使用hashlib模块曾经产生了需要的签名,这里就重操旧业,找出来了原来的项目文件,梳理了一下,就完成了这个需求了,这里只是为了简单地记录一下,也是希望能帮到需要的朋友,实现很简单,下面是具体的实现,里面有相应的注释,就不多解释了。
hash_func.py
#!usr/bin/env python
#encoding:utf-8'''
__Author__:沂水寒城
功能:hash 模块,生成数据的签名摘要
'''import sys
from hashlib import md5
from hashlib import sha1
from hashlib import sha224
from hashlib import sha256
from hashlib import sha384
from hashlib import sha512reload(sys)
sys.setdefaultencoding("utf-8")def hash_func(one_text):'''对输入的文本数据生成摘要签名'''result_dict={}#MD5 hash对象hash_md5=md5() md5hash=hash_md5.copy() md5hash.update(one_text.encode('utf-8')) md5_res=md5hash.hexdigest() result_dict['MD5']=md5_res#SHA1 hash对象hash_sha1=sha1()sha1hash=hash_sha1.copy()sha1hash.update(one_text.encode('utf-8'))sha1_res=sha1hash.hexdigest()result_dict['SHA1']=sha1_res#SHA224 hash对象hash_sha224=sha224()sha224hash=hash_sha224.copy()sha224hash.update(one_text.encode('utf-8'))sha224_res=sha224hash.hexdigest()result_dict['SHA224']=sha224_res#SHA256 hash对象hash_sha256=sha256()sha256hash=hash_sha256.copy()sha256hash.update(one_text.encode('utf-8'))sha256_res=sha256hash.hexdigest()result_dict['SHA256']=sha256_res#SHA384 hash对象hash_sha384=sha384()sha384hash=hash_sha384.copy()sha384hash.update(one_text.encode('utf-8'))sha384_res=sha384hash.hexdigest()result_dict['SHA384']=sha384_res#SHA512 hash对象hash_sha512=sha512()sha512hash=hash_sha512.copy()sha512hash.update(one_text.encode('utf-8'))sha512_res=sha512hash.hexdigest()result_dict['SHA512']=sha512_resreturn result_dictif __name__ == '__main__':hash_key_list=['MD5','SHA1','SHA224','SHA256','SHA384','SHA512']#单例测试one_text="哈尔滨工业大学"one_res_dict=hash_func(unicode(one_text))for one_key in hash_key_list:print "{0} hash result is: {1}".format(one_key,one_res_dict[one_key])print '------------------------------------------------------------------------'text_list=["清华大学","北京大学",'where did you get that body from?']for one_text in text_list:print one_text.decode('utf-8')one_result_dict=hash_func(unicode(one_text))for one_key in hash_key_list:print "{0} hash result is: {1}".format(one_key,one_result_dict[one_key])
简单的测试结果如下:
MD5 hash result is: c4afb07615e340a55ff32c5aaa8e47a5
SHA1 hash result is: 527f3d3a10f6ff74b5e51c6a0f061a7d74f08bc1
SHA224 hash result is: c21e83daea421d11ae1ecf340dafb485a97da41927b4d48d53c8d4e0
SHA256 hash result is: 30d95338e25c47abb1cad388952e214258b5179a82c10149266db0da398b63b0
SHA384 hash result is: e3692274f6805feac99c9fffc09d6671b59be518892ec7beb643dcf5523c4a759dfef26312edcca6dd5c7f0d5a93b95b
SHA512 hash result is: 9d6bead7b4dfdfae5784e1e70f14be478d3dc25dc5b665af0425afaf20de6a8411b5aefafdc5432763190ddbe48dc2534d4bc2e174e6bb6fd4b5b8ffdf1c62f8
------------------------------------------------------------------------
清华大学
MD5 hash result is: edb1d57ad7106de0708b485dc134ae3a
SHA1 hash result is: e702c99732c27e927e40b96b17be038ec6fd04ce
SHA224 hash result is: a413b310e5a96550dda43b04f247de63f43963186754335fcdd4dcd5
SHA256 hash result is: 07a6d4925ba8369c4fa9789968f4c55ec202c96b6f40f174f27e3b6d6b5dda90
SHA384 hash result is: 5f9a62f534d09c1866791210df6349d2d221dbedd50dc726154e17021db7c8440a9d88abd746ff01efac7cbc3882bfe9
SHA512 hash result is: 3f4d4d0fc881e4241ab76a1cefcbc642d23c3d346cd6420184d885fdb3c5032b7da00ec08c8c5fd23d3c58a991615971c0160c4d7752fed0798418ac9ce8da9f
北京大学
MD5 hash result is: 5563b44c2e138cf9ab6b0b17867944cf
SHA1 hash result is: f0f0378d0e9d0160d10488fd69f2dfbb3d280841
SHA224 hash result is: 7bc770181d1dc3eb70537768e7e7f30863daeab8d2f07bd44b66dfd1
SHA256 hash result is: 21aa189366edcf73a718e3746c11854597686c1ce21f71b7eec331531857d9e5
SHA384 hash result is: 631513fcc90a6dc7b01e9b69b993db9713e38a92fefc1c9f26c68d9948bda7f8794831539ec3ead0e1aec50e17ee3b11
SHA512 hash result is: 10977a8228ac7864da5be14475f3d2c9a218bf97b9781514c8f1856d5070efa855b7fbb506ffec1a794aee27d1859892ab3d41f6a1b7cf8d91dd5fbfdf7b3c91
where did you get that body from?
MD5 hash result is: 3d5bddfce92ca73cf82d69448b963a05
SHA1 hash result is: 97e2e0e50dcbf5c48d7e53b4e7c2ae97a0cf555b
SHA224 hash result is: e73453e89b1100f1e44c1458b667370ad0f1e3b23babafcf7c5b0cfd
SHA256 hash result is: 6dff07865a050da5722a880956672daf804dcaced206dfe097d7848091c2c4f0
SHA384 hash result is: c6eef1d520a7210517b925529c5d5bc6ec41f3637973c64912aff2d613ee2d1595419b2aa93319bd4726b91a6a3d5806
SHA512 hash result is: 69c5fee3704e128522877f07092bef1d9278685ae48b162b9f09f7a5a95263d727ab6bfdb20c2023ef8bd8c59e3b763fc09c530b5744d4928d9955bd443e72b1
[Finished in 0.2s]
简单记录一下。
Python使用hashlib模块生成给定文本数据的签名摘要信息(包括各种哈希函数)相关推荐
- Python中hashlib模块详解
文章目录 一.hashlib的简介 二.hashlib的使用 1.常用属性 2.常用方法 3.使用示例 三.hashlib的特点 四.代码实操 1.举例子 2.应用场景案例 一.hashlib的简介 ...
- 利用python的selenium模块向Plant-mPLoc提交数据
利用python的selenium模块向Plant-mPLoc提交数据 流程一般步骤 1.对数据的预处理 2. 环境的配置 3.代码分析及流程思想 回顾和展望 流程一般步骤 首先我们对得到的序列预 ...
- Python中random模块生成随机数详解
Python中random模块生成随机数详解 本文给大家汇总了一下在Python中random模块中最常用的生成随机数的方法,有需要的小伙伴可以参考下 Python中的random模块用于生成随机数. ...
- python使用random模块生成随机数、实现随机乱序和随机抽样?
如何使用random模块生成随机数.实现随机乱序和随机抽样? random.random()函数可以生成[0.0, 1.0)之间的随机浮点数. random.uniform(a, b)函数可以生成[a ...
- 【Python】hashlib模块实现MD5加密
MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被计算机安全领域广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value), ...
- python文本结构化处理_在Python中标记非结构化文本数据
python文本结构化处理 Labelled data has been a crucial demand for supervised machine learning leading to a n ...
- python hashlib_python hashlib模块及md5() 、sha()
hashlib模块是python2.5 以后出现的一个包,其主要涉及安全和加密.而且hashlib 得到openssl 的"支持" ,其支持openssl 库提供的所有算法,具体包 ...
- python acme_Python Hashlib模块 · Seacme Huang
Hashlib模块提供了常见的摘要算法,如MD5,SHA1等等 一.简介 Python中的hashlib模块是用来进行hash或者md5加密. 这里的加密,其实并非我们通常所说的加密,简单的说就是这种 ...
- python hashlib_Python hashlib模块实例使用详解
这篇文章主要介绍了Python hashlib模块实例使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 hashlib模块主要的作用: 加密保 ...
- python 基于pillow模块生成随机图片验证码教程
效果图 我们先来看一下大致的效果图. 以上图形都是用非常基础的元素随机构成的:点,线,曲线,文本.而pillow模块远远不止这些功能,如果学好了它,真的就是你想怎么花就怎么花. 那么现在我们就去学习一 ...
最新文章
- C#Winform窗体中传值
- 怎么设计一个好的数据库
- 华为手机下拉菜单变大_手机投屏到电视最好的方法和手机可同屏也可电视当电脑手机当鼠标...
- Cgroups控制cpu,内存,io示例
- 大学入学计算机基础考试考什么,大学入学考试计算机基础考试.docx
- python 接口自动化测试王浩然 pdf_Python接口自动化测试
- war3第一视角集合 UD篇
- 动态inventory
- 解决Hibernate:could not initialize proxy - no Session
- 语雀批量导出MarkDown文件
- 【人工智能】CB Insights:2018年全球人工智能发展趋势报告
- Apache Thrift 官网学习 一 基本概述与入门
- 抖音上爆红的美女动态代码图如何实现?
- java18(MySQL JDBC)
- DE-PPN:Document-level Event Extraction via Parallel Prediction Networks论文解读
- 使用Systemctl命令来管理系统服务
- 计算机学生管理系统,计算机学生信息管理系统毕业论文
- Mysql 的其他函数
- pngquant 批处理bat及参数说明
- Python 绘制热力图