python 实现des加密

import base64
from Crypto.Cipher import DES
class DESCrypt:
def __init__(self, key, mode, iv):
self.key = key # 密钥
self.mode = mode # 模式
self.iv = iv # 初始化向量
def encrpyt(self, text):
'''加密'''
num = DES.block_size - len(text) % DES.block_size # 需要填充的字符个数
text_pad = (text + num * chr(num)).encode('utf-8') # 填充后的字节串
crpytor = DES.new(self.key, self.mode, self.iv)
encrypt_data = crpytor.encrypt(text_pad) # 对数据进行加密
return base64.b64encode(encrypt_data).decode()
def decrypt(self, text):
'''解密'''
data = base64.b64decode(text.encode())
crpytor = DES.new(self.key, self.mode, self.iv)
decrypt_data = crpytor.decrypt(data) # 对数据进行解密
res = decrypt_data[:-decrypt_data[-1]].decode() # 去除多余字符
return res
if __name__ == '__main__':
# key = random._urandom(8) 可以利用random模块随机生成
# key = b'C\xc5\xa0\x04!\xe3\xd59' # 密钥,固定8个字节长度
key = b'sync_key' # 密钥,固定8个字节长度
mode = DES.MODE_CBC
iv = b'\x9a\xf8\xad\xeb.\xb7B\xe1' # 初始化向量,固定8个字节长度
des = DESCrypt(key, mode, iv)
text = input('请输入需要DES加密的数据:')
en_data = des.encrpyt(text)
print('%s 经过加密得到:%s' % (text, en_data))
de_data = des.decrypt(en_data)
print('%s 经过解密得到:%s' % (en_data, de_data))
posted @   hanfe1  阅读(385)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2020-09-07 Nginx : URL重定向
点击右上角即可分享
微信分享提示