pycrypto:AES加密详解

  最近在写接口自动化脚本,需要的payload参数需要加密,而采用的加密标准为AES,因此特地去学了一下,发现专门有加密算法库支持这种加密算法,就是PyCrypto

PyCrypto是一个免费的加密算法库,支持常见的DES、AES、以及MD5、SHA等各种HASH运算

 

PyPi地址:https://pypi.org/project/pycrypto/

 

这篇博文只对AES加密进行重点讲解

 

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

#加密
cryptor = AES.new('This is a key123', AES.MODE_CBC, 'This is an iv456')
msg='the answer is no'
ciphertext = cryptor.encrypt(msg)
print(ciphertext)

#解密
cryptor2 = AES.new('This is a key123', AES.MODE_CBC, 'This is an iv456')
plain_text=cryptor2.decrypt(ciphertext)
print(plain_text)

 

1)加密

'This is an iv456'为key,长度有着严格的要求,必须是16/24或者32位,否则将抛出错误:ValueError: AES key must be either 16, 24, or 32 bytes long
'This is an iv456'为VI,长度要求更加严格,只能为16位,否则将抛出错误:ValueError: IV must be 16 bytes long
通过encrypt()对msg字符串进行加密得到ciphertext

2)解密
要想对加密字符串进行解密,必须知道加密时使用的key和VI,通过decrypt()方法对加密字符串进行解密
如果key和VI错误,则将无法得到正确的解密字符串,解密失败后将会得到一个新的加密字符串

3)关于安装PyCrypto模块遇到问题的请参考本人的另外一篇博客:https://www.cnblogs.com/Elaine1/p/10180260.html

 

 

转载于:https://www.cnblogs.com/Elaine1/p/10184363.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值