| 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 = b'sync_key' |
| mode = DES.MODE_CBC |
| iv = b'\x9a\xf8\xad\xeb.\xb7B\xe1' |
| 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)) |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2020-09-07 Nginx : URL重定向