栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python DES加解密实例(pyDes)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python DES加解密实例(pyDes)

1、安装pydes,pycharm:文件-设置-python解释器

 2、pyDes使用

# pyDes.des(key,[mode],[IV],[pad],[padmode])

# 加密密钥的字节、加密类型、偏移量(可选参数用来设置填充字符)、设置填充模式 

key-> 包含加密密钥的字节。DES 8个字节,16或24个字节用于三重DES;

mode-> 加密类型的可选参数,可以是pyDes.ECB(电子密码簿)或pyDes.CBC(密码块链接)

## 如果使用CBC模式,则必须提供IV->可选的初始值字节。长度必须为8个字节;

pad-> 可选参数,设置填充字符(PAD_NORMAL)以在使用此实例完成的所有加密/解密操作; padmode-> 可选参数,设置填充模式(PAD_NORMAL或PAD_PKCS5)在对此实例执行的所有加密/解密操作期间使用;

3、引入pyDes和binascii,binascii用于二进制和ASCII的相互转换

import pyDes
import binascii  # 二进制和 ASCII 码互转

4、类的封装

class desSecret:
    def __init__(self):
        self.KEY = 'ABCDEFGH'  # 八位密钥

    # 加密
    def des_en(self, text):
        iv = secret_key = self.KEY
        k = pyDes.des(secret_key, pyDes.CBC, iv, pad=None, padmode=pyDes.PAD_PKCS5)
        data = k.encrypt(text, padmode=pyDes.PAD_PKCS5)
        # data.进制返回文本字符串.解码字符串
        return binascii.b2a_hex(data).decode()

    # 解密
    def des_de(self, text):
        iv = secret_key = self.KEY
        k = pyDes.des(secret_key, pyDes.CBC, iv, pad=None, padmode=pyDes.PAD_PKCS5)
        data = k.decrypt(binascii.a2b_hex(text), padmode=pyDes.PAD_PKCS5)
        return data.decode()

5、使用

input_text = 'LGK'

DS = desSecret()
encode_str = DS.des_en(input_text.encode())
print('加密后:', encode_str)

decode_str = DS.des_de(encode_str)
print('解密后:', decode_str)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/355312.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号