python对称加密实现_Python实现AES加密(对称加密算法)

Python实现AES加密(对称加密算法)

发布时间:2018-11-11 21:20,

浏览次数:1017

, 标签:

Python

AES

from Cryptodome.Cipher import AES from binascii import b2a_hex,a2b_hex from

Cryptodome import Random class AesEncryption(object): def __init__(self, key,

mode=AES.MODE_CFB): self.key = self.check_key(key) #

密钥key长度必须为16,24或者32bytes的长度 self.mode = mode self.iv =

Random.new().read(AES.block_size) def check_key(self, key):

'检测key的长度是否为16,24或者32bytes的长度' try: if isinstance(key, bytes): assert len(key)

in [16, 24, 32] return key elif isinstance(key, str): assert len(key.encode())

in [16, 24, 32] return key.encode() else: raise

Exception(f'密钥必须为str或bytes,不能为{type(key)}') except AssertionError:

print('输入的长度不正确') def check_data(self,data): '检测加密的数据类型' if isinstance(data,

str): data = data.encode() elif isinstance(data, bytes): pass else: raise

Exception(f'加密的数据必须为str或bytes,不能为{type(data)}') return data def encrypt(self,

data): ' 加密函数 ' data = self.check_data(data) cryptor = AES.new(self.key,

self.mode,self.iv) return b2a_hex(cryptor.encrypt(data)).decode() def

decrypt(self,data): ' 解密函数 ' data = self.check_data(data) cryptor =

AES.new(self.key, self.mode,self.iv) return

cryptor.decrypt(a2b_hex(data)).decode() if __name__ == '__main__': key =

input('请输入key:') data = '你真帅' aes = AesEncryption(key) e = aes.encrypt(data) #

调用加密函数 d = aes.decrypt(e) # 调用解密函数 print(e) print(d)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值