python简单加密解密

"""
@作 者: Edison
@日 期: 2020/9/3
@文件名: cryptogram.py
@功能简介:  加密解密模块,支持中文
"""
from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex

KEY = 'JMT-ABC-FG7-FRI0'


class Crypto:
    AES_LENGTH = 16

    def __init__(self, key: str = KEY) -> None:
        self.key = str(key).zfill(16)[:16].encode()
        self.mode = AES.MODE_ECB
        self.cryptic = AES.new(self.key, self.mode)

    def text_processor(self, text: str) -> str:
        # 支持中文 -> text.encode('utf-8')
        return text + " " * (self.AES_LENGTH - len(text.encode('utf-8')) % self.AES_LENGTH)

    def encrypt(self, text: str) -> bytes:
        # 加密
        return b2a_hex(self.cryptic.encrypt(self.text_processor(text).encode()))

    def decrypt(self, bytecode: bytes) -> str:
        # 解密
        return self.cryptic.decrypt(a2b_hex(bytecode)).decode().rstrip()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值