Python加密—AES加密解密
2016-07-29 00:00
441 查看
摘要:使用pycrypto库进行AES加密,解密,
pycrypto库:https://pypi.python.org/pypi/pycrypto/
对业务数据进行AES加密表示成十六进制字符串进行传输。
加密算法参数:
密钥的大小(以位为单位)KeySize=128
操作块大小(以位为单位)BlockSize=128
加密模式CipherMode.CBC
填充模式PaddingMode.PKCS7或PaddingMode.PKCS5
注:key与iv为十六进制字符串,长度为32字符,转成字节长度是16字节
加密前业务数据:
code={
"key1":"key1",
"key2":"key2",
"key3":"key3",
"key4":"key4",
}
key='7A9B48C4960551045B467B89015B528E'
iv='787B4DD7A9229B3316A6868F537468D5'
加密代码如下:
importjson
importbinascii
fromCrypto.CipherimportAES
BS=16
defpadding(s):
returns+(BS-len(s)%BS)*chr(BS-len(s)%BS)
key=binascii.unhexlify(key)
iv=binascii.unhexlify(iv)
code=json.dumps(code)
obj=AES.new(key,AES.MODE_CBC,iv)
cipher_code=obj.encrypt(padding(code))
aes_code=binascii.hexlify(cipher_code).decode()
print('加密:',aes_code)
运行结果:
加密:b3eda8d1b762d1784b520a7d11d774d765e2c920b1b996c130d3c3e884e8b16ec431ac98457b2e5e47e5feaf2eadc702e9465534e9abb66ad1bb2135d0a153fbc67dfc6067462db65a390b45818ea734
解密代码如下:
defunpadding(s):
returns[0:-ord(s[-1])]
s='b3eda8d1b762d1784b520a7d11d774d765e2c920b1b996c130d3c3e884e8b16ec431ac98457b2e5e47e5feaf2eadc702e9465534e9abb66ad1bb2135d0a153fbc67dfc6067462db65a390b45818ea734'
obj=AES.new(key,AES.MODE_CBC,iv)
encrypted=obj.decrypt(binascii.unhexlify(s))
decryption_code=unpadding(encrypted.decode())
print('解密:',decryption_code)
运行结果:
解密:{"key4":"key4","key1":"key1","key3":"key3","key2":"key2"}
注:CBC模式不需要初始向量
pycrypto库:
对业务数据进行AES加密表示成十六进制字符串进行传输。
加密算法参数:
密钥的大小(以位为单位)KeySize=128
操作块大小(以位为单位)BlockSize=128
加密模式CipherMode.CBC
填充模式PaddingMode.PKCS7或PaddingMode.PKCS5
注:key与iv为十六进制字符串,长度为32字符,转成字节长度是16字节
加密前业务数据:
加密代码如下:
运行结果:
加密:b3eda8d1b762d1784b520a7d11d774d765e2c920b1b996c130d3c3e884e8b16ec431ac98457b2e5e47e5feaf2eadc702e9465534e9abb66ad1bb2135d0a153fbc67dfc6067462db65a390b45818ea734
解密代码如下:
运行结果:
解密:{"key4":"key4","key1":"key1","key3":"key3","key2":"key2"}
注:CBC模式不需要初始向量
相关文章推荐
- Python3 django2.0 字段加密 解密 AES
- python 加密解密(base64, AES)
- python AES 双向对称加密解密
- windows中使用Python进行AES加密解密-文本文件加密工具
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现[转载]
- python实现aes加密解密,RSA签名和验签,RSA加密解密,并调用接口
- 用python解密crypto-js中AES加密的密码
- 使用Python进行AES加密和解密
- python3.6 实现AES加密、解密(改版)
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现
- windows中使用Python进行AES加密解密-加密解密功能实现
- python实现的AES双向对称加密解密与用法分析
- 使用Python进行AES加密和解密的示例代码
- lua-string-resty的aes加密解密,无法和python的aes进行对接
- python AES 加密与解密
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现[转载]
- 使用Python实现AES加密解密
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现【多种语言AES/CBC/PKCS5Padding通用加解密数据】
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现
- 用Python实现AES加密和解密