一、MD5加密
python中使用自帶的加密模塊,hashlib進行MD5加密
知識背景:對於用戶敏感信息,如登錄密碼,在明文傳遞參數時,可能會被別人竊取,需要通過MD5加密來加密數據
MD5加密特性:無論是字符串、數字、漢字、文件等,加密完均是18位的數字和字符串組合,且加密后無法解密,網站的解密一般通過撞庫來實現。
import hashlib
s = ['漢字','asdnecc',1234]#任何字符串,數字,漢字,文件等,加密完都是18位字符串
for i in s:
m = hashlib.md5(str(i).encode())#入參必須通過encode()方法轉換為字節型
result = m.hexdigest()#通過十六進制格式返回
print(result)
返回結果:
8a97ee1fcddc24870fb66b4b58c41214 1f85206057bcc8a7e9543a94ac60c96e 81dc9bdb52d04dc20036dbd8313ed055
二、加鹽
背景:由於用戶可能設置比較簡單的密碼如123456,654321,等有比較強規則的數據時,由於MD5加密后是固定字符串,很容易被其他人猜出密碼,所以需要通過加鹽操作來對數據加密
salt = '21385#$%&*'
password = input('password:')
password +=salt
m = hashlib.md5(password.encode())
result = m.hexdigest()
print(result)
返回結果:
password:123 21d01ea49572576a3e09dc71709b05d1
三、base64位加密
python中使用自帶的base64模塊進行base加密
base64加密特性:
1、加密后的數據,可以通過解密得到原數據
2、加密后的數據長度不是固定值,隨着加密字符串的大小而變化
import base64 #能加密 解密,末尾有等於號一般都是base64加密 #加密 s = 'https://www.baidu.com' b = base64.b64encode(s.encode())#接收bytes入參,返回bytes加密結果 t = b.decode()#返回的bytes數據通過decode()轉換為字符串 print(t) #解密 b = base64.b64decode(t) print(b.decode())
返回結果:
aHR0cHM6Ly93d3cuYmFpZHUuY29t https://www.baidu.com
