使用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")

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章