python AES加密解密代码示例

发布时间:2020-02-04编辑:脚本学堂
有关python AES加密解密模块的用法,python AES模块实现加密与解密的例子,python 无证书加密解密的方法,需要的朋友参考下。

python 无证书加密解密的方法(AES加密),无证书加密解密原理与例子。

无证书加密就是双方不需要维护证书,加密与解密只需要双方约定一个key就可以,无证书加解密的方式应用更广泛一些。
python官方例子:https://pypi.python.org/pypi/pycrypto,主要用from Crypto.Cipher import AES这个模块。

专题教程:
AES加密解密算法与实现代码
python aes加密解密算法与模块用法教程

例子,python AES加密解密代码:
 

复制代码 代码示例:
#!/usr/bin/env python
#
'''
/**
* AES加密字符串
*
* @param string data 加密的串
* @param string key 密钥(只能是16、24、32位)
* @param string iv 16位长度向量
* @param bool 编码格式(true:base64 / false:十六进制)
* @return string 加密后的结果
*/
'''
def encrypt_mode_cbc(data, key, iv = 'www.phperz.com!!', base64 = True):
lenth = len(data)
num = lenth % 16
data = data.ljust(lenth + 16 - num)
obj = AES.new(key, AES.MODE_CBC, iv)
result = obj.encrypt(data)
return result.encode('base64') if base64 is True else result.encode('hex')
encrypt = encrypt_mode_cbc('hello geekso', 'www.phperz.com!!')
print encrypt
'''
/**
* AES解密字符串
*
* @param string encrypted 待解密的串
* @param string key 密钥
* @param string iv 16位长度向量
* @param bool 编码(true:base64 / false:十六进制)
* @return string 解密后的结果 or bool
*/
'''
def decrypt_mode_cbc(encrypted, key, iv = 'www.phperz.com!!', base64 = True):
encrypted = encrypted.decode('base64') if base64 is True else encrypted.decode('hex')
if encrypted is not '':
obj = AES.new(key, AES.MODE_CBC, iv)
return obj.decrypt(encrypted)
else:
return False
 
print decrypt_mode_cbc(encrypt,'www.phperz.com!!')
exit()