DES对称加密
上码
言简意赅不套路,上码
'''
全称:数据加密标准(Data Encryption Standard),属于对称加密算法。
DES是一个分组加密算法,典型的 DES 以 64 位为分组对数据加密,加密和解密用的是同一个算法。
它的密钥长度是 56 位(因为每个第 8 位都用作奇偶校验),
密钥可以是任意的 56 位的数,而且可以任意时候改变。
'''
import binascii
from pyDes import des, CBC, PAD_PKCS5
# 加密
def des_encrypt(secret_key, s):
"""
secret_key: 密钥
s: c
iv:初始化向量适用于MODE_CBC(CBC模式中必须提供长8字节)、MODE_CFB、MODE_OFB、MODE_OPENPGP,4种模式
"""
iv = secret_key
key = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
en = key.encrypt(s, padmode=PAD_PKCS5)
return binascii.b2a_hex(en)
# 解密
def des_decrpyt(secret_key, s):
"""
secret_key: 密钥
s: c
iv:初始化向量适用于MODE_CBC(CBC模式中必须提供长8字节)、MODE_CFB、MODE_OFB、MODE_OPENPGP,4种模式
"""
iv = secret_key
k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
de = k.decrypt(binascii.a2b_hex(s), padmode=PAD_PKCS5)
return de
secret_str = des_encrypt('12345678', 'I LOVE YOU')
print(secret_str)
clear_str = des_decrpyt('12345678', secret_str)
print(clear_str)