hashlib模块主要的作用:

加密保护消息安全,常用的加密算法如MD5,SHA1等。

1、查看可用的算法有哪些

#!/usr/bin/env python#-*- coding: utf-8 -*-

importhashlib#始终可用的算法

print('始终可用的算法 : {}'.format(sorted(hashlib.algorithms_guaranteed)))print('需要结合OpenSSL可用算法 : {}'.format(sorted(hashlib.algorithms_available)))

hashlib_algorithms.py

运行效果

[root@ mnt]# python3 hashlib_algorithms.py

始终可用的算法 : ['blake2b', 'blake2s', 'md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha3_224', 'sha3_256', 'sha3_384', 'sha3_512', 'sha512', 'shake_128', 'shake_256']

需要结合OpenSSL可用算法 : ['DSA', 'DSA-SHA', 'MD4', 'MD5', 'RIPEMD160', 'SHA', 'SHA1', 'SHA224', 'SHA256', 'SHA384', 'SHA512', 'blake2b', 'blake2s', 'dsaEncryption', 'dsaWithSHA', 'ecdsa-with-SHA1', 'md4', 'md5', 'ripemd160', 'sha', 'sha1', 'sha224', 'sha256', 'sha384', 'sha3_224', 'sha3_256', 'sha3_384', 'sha3_512', 'sha512', 'shake_128', 'shake_256', 'whirlpool']

2、md5加密算法(没有加盐)

#!/usr/bin/env python#-*- coding: utf-8 -*-

importhashlib

md5_obj=hashlib.md5()

md5_obj.update('123456'.encode('utf-8'))print(md5_obj.hexdigest())

hashlib_md5.py

运行效果

[root@ mnt]# python3 hashlib_md5.py

e10adc3949ba59abbe56e057f20f883e

3、md5加密算法(加盐)

#!/usr/bin/env python#-*- coding: utf-8 -*-

importhashlib

salt= '1234'md5_obj= hashlib.md5(salt.encode('utf-8'))

md5_obj.update('123456'.encode('utf-8'))print(md5_obj.hexdigest())

hashlib_md5_salt.py

运行效果

[root@ mnt]# python3 hashlib_md5_salt.py

b38e2bf274239ff5dd2b45ee9ae099c9

4、sha1加密算法

#!/usr/bin/env python#-*- coding: utf-8 -*-

importhashlib

sha1_obj=hashlib.sha1()

sha1_obj.update('123456'.encode('utf-8'))print(sha1_obj.hexdigest())

hashlib_sha1.py

运行效果

[root@ mnt]# python3 hashlib_sha1.py

7c4a8d09ca3762af61e59520943dc26494f8941b

5、按加密算法名字进行动态加密(即hashlib.new(‘算法名字’))

#!/usr/bin/env python#-*- coding: utf-8 -*-

importhashlibimportargparse

lorem= 'Hello World'parser= argparse.ArgumentParser('hashlib Demo')

parser.add_argument('hash_name',

choices=hashlib.algorithms_available,

help='请输入hashlib的名字')

parser.add_argument('data',

nargs='?',

default=lorem,

help='请输入要加密的数据')

args=parser.parse_args()

h=hashlib.new(args.hash_name)

h.update(args.data.encode('utf-8'))print(h.hexdigest())

hashlib_new.py

运行效果

[root@ mnt]# python3 hashlib_new.py md5 123456e10adc3949ba59abbe56e057f20f883e

[root@ mnt]# python3 hashlib_new.py sha11234567c4a8d09ca3762af61e59520943dc26494f8941b

[root@ mnt]# python3 hashlib_new.py sha2561234568d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92

[root@mnt]# python3 hashlib_new.py sha512123456ba3253876aed6bc22d4a6ff53d8406c6ad864195ed144ab5c87621b6c233b548baeae6956df346ec8c17f5ea10f35ee3cbc514797ed7ddd3145464e2a0bab413

6、大文件切片md5加密算法

#!/usr/bin/env python#-*- coding: utf-8 -*-

importhashlib

content= '''Lorem ipsum dolor sit amet, consectetur adipisicing

elit, sed do eiusmod tempor incididunt ut labore et dolore magna

aliqua. Ut enim ad minim veniam, quis nostrud exercitation

ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis

aute irure dolor in reprehenderit in voluptate velit esse cillum

dolore eu fugiat nulla pariatur. Excepteur sint occaecat

cupidatat non proident, sunt in culpa qui officia deserunt

mollit anim id est laborum.'''

#一次性加密:缺点文件大的话,加载到内存会导致内存溢出

h =hashlib.md5()

h.update(content.encode('utf-8'))

all_at_once=h.hexdigest()#利用生成器,切片加密,对大文件加密有用

defchunkize(size, text):

start=0while start

chuck= text[start:start +size]yieldchuck

start+=sizereturn

#一行一行加密

h =hashlib.md5()for chunk in chunkize(64,content.encode(('utf-8'))):

h.update(chunk)

line_by_line=h.hexdigest()print('一性次加密结果 :',all_at_once)print('一行一行加密结果 :',line_by_line)

hashlib_update.py

运行效果

[root@ mnt]# python3 hashlib_update.py

一性次加密结果 : 3f2fd2c9e25d60fb0fa5d593b802b7a8

一行一行加密结果 : 3f2fd2c9e25d60fb0fa5d593b802b7a8

python hashlib模块_Python之hashlib模块的使用相关推荐

  1. python必学的模块_Python常用的模块

    模块和包 1.1模块介绍模块定义:一系列功能的集合体 模块使用: import导入模块 或者 from ... import... 导入模块 模块分类:内置模块 自定义模块 第三方模块 模块加载顺序: ...

  2. python的主要应用领域及常用的函数模块_python之常用模块篇5

    一.日志模块,logging模块 1)logging模块简单使用,屏幕输出.默认级别30 import logging logging.debug('debug...') # 10logging.in ...

  3. 简述python中怎样导入模块_Python中导入模块的两种模式,import

    import import pandas import pandas as pd 使用函数方式:.(),或者.() 比如 pandas.read_csv("data/stock.csv&qu ...

  4. python的窗口处理模块_python的图像处理模块

    除了opencv专门用来进行图像处理,可以进行像素级.特征级.语义级.应用级的图像处理外,python中还有其他库用来进行简单的图像处理,比如图像的读入和保存.滤波.直方图均衡等简单的操作,下面对这些 ...

  5. python安装os模块_python的os模块(ipython,文件,目录,权限,管理)

    什么是os模块 os模块提供了多数操作系统的功能接口函数.当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件.目录打交道,这时就离不了o ...

  6. python psycopg2使用_Python中用psycopg2模块操作PostgreSQL方法

    其实在Python中可以用来连接PostgreSQL的模块很多,这里比较推荐psycopg2.psycopg2安装起来非常的简单(pip install psycopg2),这里主要重点介绍下如何使用 ...

  7. python中自带的模块_python中的模块详解

    概念 python中的模块是什么?简而言之,在python中,一个文件(以".py"为后缀名的文件)就叫做一个模块,每一个模块在python里都被看做是一个独立的文件.模块可以被项 ...

  8. python xlrd模块_python之xlrd模块

    xlrd模块 一.xlrd模块 1.python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库,这两个适用于.xls格式有效 2. xlrd模块 ...

  9. c调用python第三方库_Python使用ctypes模块调用DLL函数之C语言数组与numpy数组传递...

    在Python语言中,可以使用ctypes模块调用其它如C++语言编写的动态链接库DLL文件中的函数,在提高软件运行效率的同时,也可以充分利用目前市面上各种第三方的DLL库函数,以扩充Python软件 ...

最新文章

  1. golang 用range 创建指针数组
  2. 大型网站登录信息保存实现-整理
  3. 解决红蜘蛛教师端教师图标显示灰色导致无法广播的问题
  4. Springboot毕设项目监狱管理系统xu08n(java+VUE+Mybatis+Maven+Mysql)
  5. Redis未授权访问缺陷让服务器沦为肉鸡
  6. OV5640摄像头简介、硬件电路及上电控制
  7. python利用PIL及openpyxl实现图片转为excel表格
  8. 简单粗暴识别工作室Android识别模拟器
  9. Applied Cryptography:chapter 11 数学背景
  10. 深信服 2019校园招聘 研发试卷-2018.09.21
  11. 微信、陌陌的架构方案分析(LBS之二)
  12. CV/PR:模式识别与图像处理笔试题
  13. 【项目】不用数据库实现留言板(用本地文件)
  14. 修炼打工皇帝不得不学的三招
  15. JavaScript for Qt Quick(QML)-安晓辉-专题视频课程
  16. python中文爬取网页_Python抓取中文网页
  17. 树莓派,居然还隐藏了这些秘密
  18. 个人PC搭建自己的虚拟服务器
  19. 华为交换机ftp\telnet\ssh功能配置指导
  20. python天天向上每十天休息一天_LeetCode刷题——第十天(python)

热门文章

  1. IPv4用的好好的,为什么我们要换IPv6?
  2. qt android播放器代码,Qt on android 播放视频的实现
  3. 如何通过华为定位API精准获取用户所在地理位置?
  4. Python实例:判断素数
  5. 问题备忘: 将工程打包成jar包运行,就报java.io.FileNotFoundException: class path resource错误
  6. 兰州银行在深交所挂牌:2022年首个上市银行股,业绩相对稳定
  7. 2021爱分析·房企数字化厂商全景报告
  8. nohup怎么更改名字_5个更改过姓名的汽车品牌,宝马、雷克萨斯都在列,曾用名惹人笑...
  9. 手机K歌的人声伴奏对齐优化实践
  10. 乐视前三季度亏损14.89亿元;高通称苹果拖欠70亿美元专利费;余额宝三季度规模减少1300亿丨雷锋早报...