简介:

  用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法。
在python3中已经废弃了md5和sha模块,简单说明下md5和sha的使用。

  什么是摘要算法呢?

  摘要算法又称为哈希算法,散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)用于加密相关的操作。

md5加密

1 hash = hashlib.md5()
2 hash.update('admin'.encode('utf-8'))
3 print(hash.hexdigest())
4 21232f297a57a5a743894a0e4a801fc3

sha1加密

1 hash = hashlib.sha1()
2 hash.update('admin'.encode('utf-8'))
3 print(hash.hexdigest())
4 d033e22ae348aeb5660fc2140aec35850c4da997

sha256加密

1 hash = hashlib.sha256()
2 hash.update('admin'.encode('utf-8'))
3 print(hash.hexdigest())
4 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918

sha384加密

1 hash = hashlib.sha384()
2 hash.update('admin'.encode('utf-8'))
3 print(hash.hexdigest())
4 9ca694a90285c034432c9550421b7b9dbd5c0f4b6673f05f6dbce58052ba20e4248041956ee8c9a2ec9f10290cdc0782

sha512加密

1 hash = hashlib.sha512()
2 hash.update('admin'.encode('utf-8'))
3 print(hash.hexdigest())
4 c7ad44cbad762a5da0a452f9e854fdc1e0e7a52a38015f23f3eab1d80b931dd472634dfac71cd34ebc35d16ab7fb8a90c81f975113d6c7538dc69dd8de9077ec

‘加盐’加密

  以上加密算法虽然很厉害,但仍然存在缺陷,通过撞库可以反解。所以必要对加密算法中添加自定义key再来做加密。

1 ######  md5 加密 ############
2 hash = hashlib.md5('python'.encode('utf-8'))
3 hash.update('admin'.encode('utf-8'))
4 print(hash.hexdigest())
5 75b431c498b55557591f834af7856b9f

hmac加密

  hmac内部对我们创建的key和内容进行处理后在加密

1 import hmac
2 h = hmac.new('python'.encode('utf-8'))
3 h.update('helloworld'.encode('utf-8'))
4 print(h.hexdigest())
5 b3b867248bb4cace835b59562c39fd55

获取文件的MD5

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

import hashlib

def md5sum(filename):

        """

        用于获取文件的md5值

        :param filename: 文件名

        :return: MD5码

        """

        if not os.path.isfile(filename):  # 如果校验md5的文件不是文件,返回空

            return

        myhash = hashlib.md5()

        = open(filename, 'rb')

        while True:

            = f.read(8096)

            if not b:

                break

            myhash.update(b)   

        f.close()

        return myhash.hexdigest()

  

Python3之hashlib相关推荐

  1. Python3模块: hashlib

    简介: 用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法. 在python3中已经废弃了md5和sha模块,简单说 ...

  2. python3 中的 md5 加密

    转载申明:https://blog.csdn.net/m0_38080253/article/details/78838489 在python3的标准库中,已经移除了md5,而关于hash加密算法都放 ...

  3. python3 的 md5加密

    在python3的标准库中,已经移除了md5,而关于hash加密算法都放在hashlib这个标准库中,如SHA1.SHA224.SHA256.SHA384.SHA512和MD5算法等. 另:在网上找关 ...

  4. python hashlib_python import hashlib出现问题

    import hashlib时出现如下问题: >>> import hashlib ERROR:root:code for hash md5 was not found. Trace ...

  5. 数据可视化路上——中国地图可视化

    想用geo:from pyecharts import Geo Collecting Geo Could not find a version that satisfies the requireme ...

  6. 如何搭建自己的微信公众号服务

    文章目录 一.先启用服务器配置 二.服务器端几个关键代码 参考文献 一.先启用服务器配置 二.服务器端几个关键代码 main.py # -*- coding: utf-8 -*- # filename ...

  7. 【强化学习】解决gym安装Atari2600环境gym[atari,accept-rom-license] RuntimeError 无法下载Roms的问题

    先上Roms.tar.gz安装地址:Roms.tar.gz 以下内容是解决问题的思路,如果已经完全知道问题原因可以直接跳过 安装gym[accept-rom-license]时会出现安装失败的情况: ...

  8. 用python实现MD5、sha256、sha384、sha512、base64加密

    文章目录 一.hashlib介绍 二.使用hashlib库进行md5加密 1.加密未混淆代码 2.混淆加密代码 三.使用hashlib库进行sha256.sha384.sha512加密 四.多重加密( ...

  9. python指定宽度20输出_Python 以指定宽度格式化输出

    Python 以指定宽度格式化输出 2020-05-07 当对一组数据输出的时候,我们有时需要输出以指定宽度,来使数据更清晰. 1 mat = "{:20}\t{:28}\t{:32}&qu ...

最新文章

  1. 并发Goroute、定时器、信号处理、单元测试
  2. 打开深蓝医生的国庆大礼包!
  3. ECharts+BaiduMap+HT for Web网络拓扑图应用
  4. CentOS系统 Nginx、MySQL、PHP 服务器的部署
  5. android按钮进度动画,android – 在按钮后面放置一个进度条
  6. 【机器视觉】dev_update_on和dev_update_off算子
  7. Netty初步之hello world
  8. 连接远程mysql遇到的问题及解决方法
  9. 借助 SAP 电商云 Spartacus UI 提供的 Schematics 辅助您的前端项目升级
  10. python矩阵转置_Python 矩阵转置的几种方法小结
  11. [转载]Runtime详解
  12. jQuery 实现图片动画代码
  13. 蒙特卡洛方法习题_蒙特卡洛方法
  14. 2022恒生电子前端笔试
  15. 交通流特征工程小技巧与思考
  16. 使用合取范式进行整数规划建模的方法
  17. 安徽农业大学计算机考研分数线,安徽农业大学考研分数线
  18. 密码算法测试向量——Cipher MAC SM4
  19. Linux环境部署:开启电脑虚拟化
  20. 16光8电全千兆宽温工业交换机16千兆光8千兆网口机架式网管型工业级以太网交换机

热门文章

  1. 启程未来,未来可期:毕业季的梦想岁月
  2. PID控制器算法-Simulink仿真
  3. 2020-10-08:“棱镜门事件“的思考:黑客是什么,如何成为黑客?
  4. MongoDB备份/恢复/导入/导出/条件导出/格式化导出
  5. HLA-Face: Joint High-Low Adaptation for Low Light Face Detection论文阅读笔记
  6. 像设计师一样展示自己
  7. c语言存款利息的计算有1000,【c语言】存款利息的计算
  8. Libevent库的介绍与应用
  9. 【概率论与数理统计】简单梳理知识框架和概数史
  10. 2015年7月16号