Python常用模块 之 hashlib模块

Posted 孤寒者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python常用模块 之 hashlib模块相关的知识,希望对你有一定的参考价值。

目录:

每篇前言:


1.hashlib模块:

1.1 数据安全:

  • 数据时代,为了保证数据的安全性,防止数据泄露,往往会对数据进行加密,对于一些敏感数据,加密措施更加是令人发指。

  • 加密是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。

  • 概念简单讲解:
    1.对称加密:数据加密解密使用相同的密钥
    2.非对称加密:加密和解密用两把不同的密钥, 公钥用于加密数据,私钥用于解密数据
    3.单向加密:只能加密数据,而不能解密数据

想要深入了解的童鞋可以看看这篇文章:《身为程序猿——这些加密解密以及字符编码原理你真的废吗?》

1.2 Hash结构:(单向加密)

散列函数,一般翻译为哈希,把输入的任意长度的数据,通过散列函数进行转化,变成一个长度固定的值(散列值),这个值基本是唯一的,简单来说,hash算法就是一种将任意长度的数据变成一个长度固定的数据的函数。

  • 特点:
    不可逆:无法根据散列值来还原原来的数据;
    定长输出:无论输入的原始数据有多长,结果长度是相同的;
    抗修改性:输入的微小改变,哪怕只有一个字符,会引起结果的巨大改变;
    强碰撞性:很难找到两段内容不同的数据,使他们产生的hash值一致,几乎不可能。

1.3 hashlib模块API:

import hashlib

有个小site可根据加密结果逆回初始值:https://cmd5.com/

  • Hashlib模块提供了许多供我们调用的hash算法,主要有:
    md5和SHA系列:sha1, sha224, sha256, sha384, sha512。
  1. 第一个API:
    生成一个hash对象(注意data数据必须是二进制数据,如果是字符串的话可以使用.encode()转为二进制数据,例如:'123456'.encode();name参数是hash算法名):
    hashlib.new(name,data=b"")

  2. 第二个API:
    生成一个使用该hash算法的hash对象:
    hashlib.hash算法名(data=b'')

  3. 第三个API:
    更新hash对象:
    hash对象.update(data=b'')

  4. 第四个API:
    返回hash算法计算得到的值(bytes类型):
    hash对象.digest()

  5. 第五个API:
    返回hash算法计算得到的值(str类型):
    hash对象.hexdigest()

1.4 简单使用:

2. 使用md5进行加密实现登录注册:

开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系

以上是关于Python常用模块 之 hashlib模块的主要内容,如果未能解决你的问题,请参考以下文章

Python之常用模块hashlib模块与collections模块

Python常用模块 之 hashlib模块——简单实现实现登录注册

Python常用模块 之 hashlib模块——简单实现实现登录注册

Python常用模块-摘要算法(hashlib)

python模块之hashlib模块

Python之hashlib模块的使用