Jmeter 檢視結果樹顯示unicode轉中文
阿新 • • 發佈:2021-11-24
加密
1.雜湊加密
雜湊函式是一種不可逆的加密演算法,即無法解密;MD5預設生成32位的密文;
2. python使用MD5加密
import hashlib
# 例項化物件
obj=hashlib.md5()
# 加密
obj.update("admin".encode("utf-8"))#加密的時候必須是位元組
# 獲取密文
v=obj.hexdigest()
print(v)
3.撞庫
-
將上面產生的密文在網站上進行解密測試,發現被解析出原文;因為MD5演算法產生的值唯一;因此可能存在對應的密文字典;通過查詢可以解析到結果,發生撞庫現象;
4.加鹽
-
為了解決上述問題,使用MD5的加鹽
import hashlib # 例項化物件 obj=hashlib.md5(b'ssdgsdfhhdfgdf') # 加密 obj.update("admin".encode("utf-8"))#加密的時候必須是位元組 # 獲取密文 v=obj.hexdigest() print(v) # 21232f297a57a5a743894a0e4a801fc3 # 27caf5f79691c06900114ff867b98309
-
進行解密測試
解密失敗,無法解析出對應的值
5.編寫對應的加密函式
- 編寫好函式方便後期的呼叫與使用
- 應用場景
- 一般在資料庫中儲存的密碼儲存為密文的形式,因此在資料庫設計的時候可以將密碼欄位設定為32
- 在網站中用來產生token,進行加密驗證;
- 一般在資料庫中儲存的密碼儲存為密文的形式,因此在資料庫設計的時候可以將密碼欄位設定為32
- 補充:django中應用MD5的時候,一般django配置檔案
settings.py
檔案中的SECRET_KEY作為鹽;因此在使用,django的時候一定要保護好django的SECRET_KEY;
import hashlib SALT="鹽" def md5(strings): hash_object=hashlib.md5(SALT.encode("UTF-8"))#轉換成位元組 hash_object.update(strings.encode('utf-8')) return hash_object.hexdigest() if __name__ == '__main__': print(md5("test"))
每天都是更接近成功的一天;