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 相关文章推荐
基于Django的ModelForm组件(详解)
Dec 07 Python
TensorFlow实现RNN循环神经网络
Feb 28 Python
解决python中使用plot画图,图不显示的问题
Jul 04 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
May 23 Python
Django model select的多种用法详解
Jul 16 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
Jul 23 Python
python实现堆排序的实例讲解
Feb 21 Python
Tensorflow tf.tile()的用法实例分析
May 22 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
Jun 29 Python
python 生成器需注意的小问题
Sep 29 Python
Django和Ueditor自定义存储上传文件的文件名
Feb 25 Python
Python Matplotlib库实现画局部图
Nov 17 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
一个简单计数器的源代码
2006/10/09 PHP
推荐个功能齐全的发送PHP邮件类
2007/01/03 PHP
php获取POST数据的三种方法实例详解
2016/12/20 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
2019/04/15 PHP
php字符串截取函数mb_substr用法实例分析
2019/06/25 PHP
php实现的数组转xml案例分析
2019/09/28 PHP
jquery应该如何来设置改变按钮input的onclick事件
2012/12/10 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
2013/10/16 Javascript
jquery 插件实现瀑布流图片展示实例
2015/04/03 Javascript
JavaScript节点及列表操作实例小结
2015/08/05 Javascript
根据user-agent判断蜘蛛代码黑帽跳转代码(js版与php版本)
2015/09/14 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
Vue单文件组件的如何使用方式介绍
2017/07/28 Javascript
微信小程序radio组件使用详解
2018/01/31 Javascript
vue计算属性及使用详解
2018/04/02 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
vue element upload组件 file-list的动态绑定实现
2019/10/11 Javascript
VUE中使用HTTP库Axios方法详解
2020/02/05 Javascript
详细分析vue表单数据的绑定
2020/07/20 Javascript
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
2016/09/19 Python
Python实现压缩和解压缩ZIP文件的方法分析
2017/09/28 Python
Python统计单词出现的次数
2018/04/04 Python
python 识别图片中的文字信息方法
2018/05/10 Python
python生成1行四列全2矩阵的方法
2018/08/04 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
用python拟合等角螺线的实现示例
2019/12/27 Python
Python中内建模块collections如何使用
2020/05/27 Python
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
2014/04/10 HTML / CSS
PHP解析URL是哪个函数?怎么用?
2013/05/09 面试题
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
反腐倡廉演讲稿
2014/05/22 职场文书
三八妇女节演讲稿
2014/05/27 职场文书
见习报告格式要求
2014/11/04 职场文书
行政经理岗位职责
2015/04/15 职场文书