一、md5加密
md5加密是不可逆的,只能加密,不能解密,加密时只能传二进制类型的(字符串加encode()就能变成byte类型)。
无论多长的字符串,加密出来都是32位的。
加密需导入hashlib模块
import hashlib
s='123'
m=hashlib.md5(s.encode())
result=m.hexdigest()#获取加密后的结果
print(result)
封装一个加密函数
提高安全性的方法:加盐。
加盐是指在你输入的密码后面再加一个随机字符串。
def md5(s,salt=''):
new_s=str(s) + salt
m = hashlib.md5(new_s.encode())
return m.hexdigest()
二、如何对文件加密
先打开文件,读取文件再加密
打开文件时用rb表示用二进制打开文件,使用二进制打开,加密时不需要用encode()
f=open('PyMysql-0.7.5.py3-none.whl','rb') #rb表示用二进制打开,
jg=f.read()
m=hashlib.md5(jg) #使用二进制打开,加密时不需要用encode
result=m.hexdigest()#获取加密后的结果
print(result)
三、base64加密
既能加密又能解密,
一般传输数据时会用到,加密完都是字母或者数字。
import base64 #既能加密又能解密
s='http://www.baidu.com'
b=base64.b64encode(s.encode()) #加密
result=b.decode()
print(result)
b=base64.b64decode('aHR0cDovL3d3dy5iYWlkdS5jb20=') #解密
print(b.decode())