使用Python pyDes和base64模塊對字符串進行加密和解密


代碼如下:

import pyDes import base64 Key = "Gogenius" Iv = "Gogen123" # 加密 def encrypt_str(data): # 加密方法 method = pyDes.des(Key, pyDes.CBC, Iv, pad=None, padmode=pyDes.PAD_PKCS5) # 執行加密碼 k = method.encrypt(data) # 轉base64編碼並返回 return base64.b64encode(k) # 解密 def decrypt_str(data): method = pyDes.des(Key, pyDes.CBC, Iv, pad=None, padmode=pyDes.PAD_PKCS5) # 對base64編碼解碼 k = base64.b64decode(data) # 再執行Des解密並返回 return method.decrypt(k) Encrypt = encrypt_str("1234567") print(Encrypt) Decrypt = decrypt_str(Encrypt) print(Decrypt)
 

擴展:

默認情況下本加密函數執行完成后返回的為base64編碼,如果直接存放到數據庫再取出來有可能就是str型,這時候不可以直接拿str型的數據去解密,所以通常做法是先將數據轉換為字符串型后再存放到數據庫,解密的時候從數據庫取出來再轉換成base64編碼再進行解密,方法如下

# 轉換為UTF-8編碼,用這種編碼存儲就不會有問題 data.decode("UTF-8") # 解碼 data.encode("UTF-8")
 

此外:我們可以在存儲的時候在字符串的前面,后面加入一些隨機長度的字符串,這樣防止別人破解,但在解密的時候需要將這些加上去的字符串先去除


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM