DES/AES加密
DES加密
第一种方法
安装 pip install pyDes
from pyDes import *
import binascii
import pyDes
# 秘钥
KEY = 'PASSWORD'
def des_encrypt(s):
"""
DES 加密
:param s: 原始字符串
:return: 加密后字符串,16进制
"""
secret_key = KEY
iv = secret_key
k = des(secret_key, ECB, iv, pad=None, padmode=PAD_PKCS5)
en = k.encrypt(s, padmode=PAD_PKCS5)
return binascii.b2a_hex(en)
def des_descrypt(s):
"""
DES 解密
:param s: 加密后的字符串,16进制
:return: 解密后的字符串
"""
secret_key = KEY
iv = secret_key
k = des(secret_key, ECB, iv, pad=None, padmode=PAD_PKCS5)
de = k.decrypt(binascii.a2b_hex(s), padmode=PAD_PKCS5)
return de
s="python3456"
#加密之后大写
res=(des_encrypt(s)).upper()
print(res)
s=b"04201E4B9788BB987C3A47FF367F76F0"
res=des_descrypt(s)
print(res)
第二种方法
import pyDes
import base64
Key = "PASSWORD"
Iv = None
def bytesToHexString(bs):
return ''.join(['%02X ' % b for b in bs])
def hexStringTobytes(str):
str = str.replace(" ", "")
return bytes.fromhex(str)
# 加密
def encrypt_str(data):
# 加密方法
method = pyDes.des(Key, pyDes.ECB, Iv, pad=None, padmode=pyDes.PAD_PKCS5)
# 执行加密码
k = method.encrypt(data)
data = bytesToHexString(k).replace(' ','')
return data
# 解密
def decrypt_str(data):
method = pyDes.des(Key, pyDes.ECB, Iv, pad=None, padmode=pyDes.PAD_PKCS5)
# 对base64编码解码
k =hexStringTobytes(data)
return method.decrypt(k)
Encrypt = encrypt_str("python3456")
print(Encrypt)
Decrypt = decrypt_str(Encrypt)
print("Dec=",Decrypt)
第三种方法
from Cryptodome.Cipher import DES
import binascii
def pad(text):
while len(text)%8 != 0: #不是8的倍数,用空格补全成8的倍数
text += ' '
return text
key = b'abcdefgh' # 密钥,一般是8位或16位
des = DES.new(key,DES.MODE_ECB) #参数 key:密钥 mode:模式一般是DES.MODE_ECB
text = 'hello world' #要加密的文本
e