'''
/**
* 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.jb200.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.jb200.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.jb200.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.jb200.com!!')
exit()