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


Posted in Python onOctober 27, 2014

本文实例讲述了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 = '3water.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', '3water.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 = '3water.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,'3water.com!!')

exit()

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

Python 相关文章推荐
python绘图方法实例入门
May 19 Python
在Python中移动目录结构的方法
Jan 31 Python
Python利用Beautiful Soup模块创建对象详解
Mar 27 Python
python实现读取excel写入mysql的小工具详解
Nov 20 Python
python3实现163邮箱SMTP发送邮件
May 22 Python
sklearn-SVC实现与类参数详解
Dec 10 Python
pandas中的数据去重处理的实现方法
Feb 10 Python
Python如何使用队列方式实现多线程爬虫
May 12 Python
python3的pip路径在哪
Jun 23 Python
解决导入django_filters不成功问题No module named 'django_filter'
Jul 15 Python
如何在 Matplotlib 中更改绘图背景的实现
Nov 26 Python
Python实现PIL图像处理库绘制国际象棋棋盘
Jul 16 Python
深入理解Python 代码优化详解
Oct 27 #Python
简单的Python抓taobao图片爬虫
Oct 26 #Python
Python性能优化的20条建议
Oct 25 #Python
跟老齐学Python之网站的结构
Oct 24 #Python
跟老齐学Python之折腾一下目录
Oct 24 #Python
跟老齐学Python之私有函数和专有方法
Oct 24 #Python
跟老齐学Python之模块的加载
Oct 24 #Python
You might like
PHP可变函数的使用详解
2013/06/14 PHP
php后门URL的防范
2013/11/12 PHP
windows平台中配置nginx+php环境
2015/12/06 PHP
php提交post数组参数实例分析
2015/12/17 PHP
thinkPHP实现多字段模糊匹配查询的方法
2016/12/01 PHP
PHP微信企业号开发之回调模式开启与用法示例
2017/11/25 PHP
PHP使用函数用法详解
2018/09/30 PHP
javascript 数组的方法集合
2008/06/05 Javascript
javascript对象之内置对象Math使用方法
2010/04/16 Javascript
javascript 按键事件(兼容各浏览器)
2013/12/20 Javascript
javascript实现在线客服效果
2015/07/15 Javascript
javascript跨域的方法汇总
2015/10/23 Javascript
AngularJS中处理多个promise的方式
2016/02/02 Javascript
JS实现获取剪贴板内容的方法
2016/06/21 Javascript
AngularJS过滤器filter用法实例分析
2016/11/04 Javascript
nodejs动态创建二维码的方法
2017/08/12 NodeJs
微信小程序出现wx.getLocation再次授权问题的解决方法分析
2019/01/16 Javascript
微信小程序实现的一键连接wifi功能示例
2019/04/24 Javascript
vue接通后端api以及部署到服务器操作
2020/08/13 Javascript
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
2020/12/25 Vue.js
[00:16]热血竞技场
2019/03/06 DOTA
浅谈Django REST Framework限速
2017/12/12 Python
django使用LDAP验证的方法示例
2018/12/10 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
Django实现微信小程序的登录验证功能并维护登录态
2019/07/04 Python
浅谈Django中view对数据库的调用方法
2019/07/18 Python
python ffmpeg任意提取视频帧的方法
2020/02/21 Python
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
无子女夫妻离婚协议书(4篇)
2014/10/20 职场文书
工程部主管岗位职责
2015/02/12 职场文书
2015年个人招商工作总结
2015/04/25 职场文书
上甘岭观后感
2015/06/10 职场文书
2015年国庆节标语大全
2015/07/30 职场文书
《刷子李》教学反思
2016/02/20 职场文书
如何更改Win11声音输出设备?Win11声音输出设备四种更改方法
2022/04/08 数码科技
Golang 结构体数据集合
2022/04/22 Golang