作者介绍:【孤寒者】—CSDN全栈领域优质创作者、HDZ核心组成员、华为云享专家Python全栈领域博主、CSDN原力计划作者
- 本文已收录于Python全栈系列专栏:《Python全栈基础教程》
- 热门专栏推荐:《Django框架从入门到实战》、《爬虫从入门到精通系列教程》、《爬虫高级》、《前端系列教程》、《tornado一条龙+一个完整版项目》。
- 本专栏面向广大程序猿,为的是大家都做到Python从入门到精通,同时穿插有很多很多习题,巩固学习。
- 订阅专栏后可私聊进一千多人Python全栈交流群(手把手教学,问题解答); 进群可领取Python全栈教程视频 + 多得数不过来的计算机书籍:基础、Web、爬虫、数据分析、可视化、机器学习、深度学习、人工智能、算法、面试题等。
- 加入我一起学习进步,一个人可以走的很快,一群人才能走的更远!
数据时代,为了保证数据的安全性,防止数据泄露,往往会对数据进行加密,对于一些敏感数据,加密措施更加是令人发指。
加密是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。
概念简单讲解:
1.对称加密:数据加密解密使用相同的密钥
2.非对称加密:加密和解密用两把不同的密钥, 公钥用于加密数据,私钥用于解密数据
3.单向加密:只能加密数据,而不能解密数据
想要深入了解的童鞋可以看看这篇文章:《身为程序猿——这些加密解密以及字符编码原理你真的废吗?》
散列函数,一般翻译为哈希,把输入的任意长度的数据,通过散列函数进行转化,变成一个长度固定的值(散列值),这个值基本是唯一的,简单来说,hash算法就是一种将任意长度的数据变成一个长度固定的数据的函数。
import hashlib
有个小site可根据加密结果逆回初始值:https://cmd5.com/。
第一个API:
生成一个hash对象(注意data数据必须是二进制数据,如果是字符串的话可以使用.encode()转为二进制数据,例如:'123456'.encode()
;name参数是hash算法名):
hashlib.new(name,data=b"")
第二个API:
生成一个使用该hash算法的hash对象:
hashlib.hash算法名(data=b'')
第三个API:
更新hash对象:
hash对象.update(data=b'')
第四个API:
返回hash算法计算得到的值(bytes类型):
hash对象.digest()
第五个API:
返回hash算法计算得到的值(str类型):
hash对象.hexdigest()