什么是加密?
加密是将一个明文数据,按照指定的算法,运算得到一个其他的可以隐藏真实信息的密文数据,这个过程称为加密;处理的算法称为加密算法;用到的关键数据称为密钥。
什么是解密?
解密是按照制定的算法和关键数据,将一个密文数据进行逆向运算得到的正确的明文数据的过程
单向加密算法:只能加密,不能解密的算法
如:用户账号密码存储,此时任何人都不能查看该用户的明文密码
算法有:
*1单向散列加密算法--md5
*2单向哈希加密算法--shax加密
双向加密算法:可以加密,加密的数据可以解密得到数据
对称加密:加密和解密使用相同的密钥
非对称加密:加密和解密使用不同的密钥
加密操作步骤
1.原始数据
2.编码(转换为字节数据)
3.使用算法加密
4.利用盐值更新密文
5.得到加密后的数据
字符串的编码和解码
编码:字符串.encode(编码名称)——>字节数据
解码:字节数据.decode(编码名称)——>字符串数据
##加密代码举例
import hashlib
s = "hello word"
s1 = s.encode("utf-8")#编码
target = hashlib.md5(s1)#使用MD5加密
yanzhi = "#$%^&*" #设置盐值
target.update(yanzhi.encode("utf-8"))#利用盐值更新密文
x = target.hexdigest()#得到加密后的数据
print(x)
输出 :fa21436a387cd090ad5d328463d6e4a4
对称加密中的base64
加密
import base64
s = "你好"
s1 = s.encode("utf-8")#将明文数据转换为字节数据
target = base64.b64encode(s1)#利用base64加密
print(target)
输出:b'5L2g5aW9'
解密
mi_ma = base64.b64decode(target)#利用base64解出密文数据
yuan_mi_ma = mi_ma.decode("utf-8")#将数据转换为字符串
print(yuan_mi_ma)
输出:你好
==========================================
def encrypt(src):
'''
加密
:param src:
:return:
'''
#编码
src = src.encode("utf-8")
#加密
target = hashlib.md5(src)
#返回
return target.hexdigest()
网友评论