des對稱加密:是一種比較傳統的加密方式,其加密運算、解密運算使用的是同樣的密鑰,資訊的發送者和資訊的接收者在進行資訊的傳輸與處理時,必須共同持有該密碼(稱為對稱密碼)
附:http://tool.chacuo.net/cryptdes,這個是線上加解密工具
前提:需要安裝pyDes庫
from pyDes import des, CBC, PAD_PKCS5
import binascii
# 秘鑰
KEY = 'keiHG$93'
def des_encrypt(s):
"""
DES 加密
:param s: 原始字元串
:return: 加密後字元串,16進制
"""
secret_key = KEY # 密碼
iv = secret_key # 偏移
# secret_key:加密密鑰,CBC:加密模式,iv:偏移, padmode:填充
des_obj = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
# 傳回為位元組
secret_bytes = des_obj.encrypt(s, padmode=PAD_PKCS5)
# 傳回為16進制
return binascii.b2a_hex(secret_bytes)
def des_descrypt(s):
"""
DES 解密
:param s: 加密後的字元串,16進制
:return: 解密後的字元串
"""
secret_key = KEY
iv = secret_key
des_obj = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
decrypt_str = des_obj.decrypt(binascii.a2b_hex(s), padmode=PAD_PKCS5)
return decrypt_str
調用:
print(des_encrypt("ceshi123"))
輸出:b'9dd9133d27c1b071f4dc0c13479b3882'
print(des_descrypt("9dd9133d27c1b071f4dc0c13479b3882"))
輸出:b'ceshi123'
加密:

解密:
可以看到代碼和工具的結果都是一樣