最近要和Java組做加密對接,最終采用的是DES加密方式,加密之后的字節通過base64轉化成字符串,再通過jwt加密之后傳輸。
本篇文章單純記錄一下Python中DES加密的使用方式,很簡單,直接看代碼:
- 需要pyDes庫; pip install pyDes
- 秘鑰; 只能是8位字符串
- 填充方式; 如果要和Java對接,這個要商議好,如果自己試驗玩玩就無所謂了
1 # des模式 填充方式 ECB加密方式 2 from pyDes import des, PAD_PKCS5, ECB 3 4 5 # 秘鑰 (如果和Java對接,兩邊要有相同的秘鑰) 6 DES_SECRET_KEY = '12345678' 7 s = '這是一段明文'.encode() # 這里中文要轉成字節, 英文好像不用 8 des_obj = des(DES_SECRET_KEY, ECB, DES_SECRET_KEY, padmode=PAD_PKCS5) # 初始化一個des對象,參數是秘鑰,加密方式,偏移, 填充方式 9 secret_bytes = des_obj.encrypt(s) # 用對象的encrypt方法加密 10 s = des_obj.decrypt(secret_bytes) # 用對象的decrypt方法解密 11 print(secret_bytes) 12 print(s.decode())
總結:
和其他語言或者開發者對接的時候,主要是統一一下des加密的秘鑰、填充方式、和加密方式如ECB,這里初始化des對象的時候,第一個參數和第三個參數都是secret_key,這個沒有寫錯,第三個好像是什么VI偏移量。