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

前言

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

DES加密模式

加密模式:DES/CBC/pkcs5padding
加解密在线工具:http://tool.chacuo.net/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个课

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

(0)

相关推荐

  • RSA加密的填充方式

    与对称加密算法DES,AES一样,RSA算法也是一个块加密算法( block cipher algorithm),其算法原理特点是总保持在一个固定长度的块上进行操作.但跟DES,AES等算法不同的是, ...

  • Python AES256加密

    基础知识 # 在Linux操作系统下,Python3的默认环境编码变为了utf-8编码,所以在编写代码的时候,字符串大部分都是以utf-8处理UTF-8:1byte = 8bit1个英文字符 = 1b ...

  • python笔记43-加解密AES/CBC/pkcs7padding

    前言 有些公司对接口的安全要求比较高,传参数的时候,不会明文的传输,先对接口加密,返回的数据也加密返回. 目前比较常见的加密方式是AES/CBC/pkcs7padding. AES五种加密模式 在AE ...

  • 完整版Python笔记|超级有用

    完整版Python笔记|超级有用

  • 收藏 常用加解密工具集合|视频图片加解密方案

    今天 以下文章来源于转行程序员 ,作者王炸 转行程序员你要再说我写的文章没用我可就要报警了!! 最近工作需要做视频加密解密,大概需求就是摄像头录制好的视频实时加密存储到本地,防止别人拔掉存储卡把视频拷 ...

  • 【汇总】PLC系统如何加解密和定时催款?

    [导读]道高一尺魔高一丈,对于PLC系统的加解密的战斗从来没有停止过.各种品牌PLC厂家在不断的升级数据安全性,系统集成商也在想方设法保护自己的合法权益,终端用户也费尽脑汁的想要彻底搞清楚自己采购的设 ...

  • 【python笔记】python java 语法,对比学习

    【python笔记】python java 语法,对比学习

  • python笔记2-冒泡排序

    前言 面试的时候经常有面试官喜欢问如何进行冒泡排序?这个问题相信能难倒一批英雄好汉,本篇就详细讲解如何用python进行冒泡排序. 一.基本原理 1.概念: 冒泡排序(Bubble Sort),是一种 ...

  • python笔记3-发送邮件(smtplib)

    前言 本篇总结了QQ邮箱和163邮箱发送邮件,邮件包含html中文和附件,可以发给多个收件人,专治各种不行,总之看完这篇麻麻再也不用担心我的邮件收不到了. 以下代码兼容python2和python3, ...

  • python笔记4-遍历文件夹目录os.walk()

    前言 如何遍历查找出某个文件夹内所有的子文件呢?并且找出某个后缀的所有文件 一.walk功能简介 1.os.walk() 方法用于通过在目录树种游走输出在目录中的文件名,向上或者向下. 2.walk( ...

  • python笔记5-python2写csv文件中文乱码问题

    前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode. 当list.tuple.dict里面有中文时,打印出来的是Unicode编码,这个是无解的. 对 ...