加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python实现无证书加密解密实例

发布时间:2020-12-16 19:41:53 所属栏目:Python 来源:网络整理
导读:本篇章节讲解python实现无证书加密解密的方法,供大家参考研究。具体实现方法如下: 无证书加密就是双方不需要维护证书,加密与解密只需要双方约定一个key就可以,无证书加解密的方式应用更广泛一些,python官方也有这方面的相关例子说明,地址是:h

本篇章节讲解python实现无证书加密解密的方法,分享给大家供大家参考。具体实现方法如下:

无证书加密就是双方不需要维护证书,加密与解密只需要双方约定一个key就可以,无证书加解密的方式应用更广泛一些,python官方也有这方面的相关例子说明,地址是:https://pypi.python.org/pypi/pycrypto,主要用的是from Crypto.Cipher import AES这个模块,代码如下:

复制代码 代码如下:
'''
/**
* 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.aspzz.cn!!',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.aspzz.cn!!')
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,base64 = True):
encrypted = encrypted.decode('base64') if base64 is True else encrypted.decode('hex')
if encrypted is not '':
obj = AES.new(key,iv)
return obj.decrypt(encrypted)
else:
return False

print decrypt_mode_cbc(encrypt,'www.aspzz.cn!!')
exit()

希望本文所述对大家的Python程序设计有所帮助。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读