ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-09-30 20:31:06  阅读:280  来源: 互联网

标签:CBC DES 加密 python des 加解密 key


前言

使用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

标签:CBC,DES,加密,python,des,加解密,key
来源: https://www.cnblogs.com/yoyoketang/p/15358052.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有