python2.7 AES 加解密(工具类)

先安装包

pip install pycrypto==2.6.1

加解密类

# coding=utf-8
from Crypto.Cipher import AES


class ASEUtil(object):
    """
    ase加解密工具类
    """

    @staticmethod
    def encrypt(key, text):
        """
        解密
        """
        bs = AES.block_size

        def pad(s): return s + (bs - len(s) % bs) * chr(bs - len(s) % bs)

        cipher = AES.new(key, AES.MODE_ECB)  # ECB模式
        return cipher.encrypt(pad(text)).encode("hex")

    @staticmethod
    def decrypted(key, cipher_text):
        """
        解密
        """
        cipher = AES.new(key, AES.MODE_ECB)  # ECB模式

        def un_pad(s): return s[0:-ord(s[-1])]

        return un_pad(cipher.decrypt(cipher_text.decode("hex")))


if __name__ == '__main__':
    encrypt = ASEUtil.encrypt('hhhhhhhhhhhhhhhh', '{"abc":"abc"}')
    decrypted = ASEUtil.decrypted('hhhhhhhhhhhhhhhh',encrypt)
    print(decrypted)

该代码仅支持python2,注意,key只能为16位或者16位的倍数,否则报错

ValueError: Incorrect AES key length (15 bytes)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值