分享

python笔记66 - DES/CBC/pkcs5padding加解密(pyDes)

 上海悠悠 2021-10-10

前言

使用python代码实现 DES/CBC/pkcs5padding加解密

DES加密模式

加密模式:DES/CBC/pkcs5padding
加解密在线工具:http://tool./cryptdes
需知道加密的密码(8位):yoyo1234
IV偏移量(8位):12345678
输出编码格式(16进制):hex

在线加密结果
输入:yoyo
得到16进制:d50d7e20173f0e27

pyDes库

先安装pyDes库Version: 2.0.1

> pip install pyDes

python代码实现DES加解密

from pyDes import des, CBC, PAD_PKCS5
import binascii
"""
加密模式:DES/CBC/pkcs5padding
需pip先安装依赖包
> pip install pyDes
"""

def des_encrypt(s, key='yoyo1234'):
"""
DES 加密
:param s: 原始字符串
:param key: 加密密钥8位
:return: 加密后字符串,16进制
"""
secret_key = key
iv = '12345678' # 偏移量8位
k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
en = k.encrypt(s, padmode=PAD_PKCS5)
return binascii.b2a_hex(en)

def des_descrypt(s, key='yoyo1234'):
"""
DES 解密
:param s: 加密后的字符串,16进制
:return: 解密后的字符串
"""
secret_key = key
iv = '12345678' # 偏移量8位
k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
de = k.decrypt(binascii.a2b_hex(s), padmode=PAD_PKCS5)
return de

if __name__ == '__main__':
s = 'yoyo'
encry_s = des_encrypt(s)
print(encry_s)
descry_s = des_descrypt(encry_s)
print(descry_s)

运行结果

b'd50d7e20173f0e27'
b'yoyo'

加解密AES/CBC/pkcs7padding加解密参考https://www.cnblogs.com/yoyoketang/p/11717282.html

2021年第 9 期《python接口web自动化+测试开发》课程,10月17号开学!

加量不加价(新增postman, 赠送selenium和python基础2个课

本期上课时间:1017-1月9号,每周六、周日晚上20:30-22:30

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多