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)

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LINGK98

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值