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的Pyspider为例剖析搜索引擎的网络爬虫实现方法
Mar 30 Python
利用Python中的输入和输出功能进行读取和写入的教程
Apr 14 Python
python flask 多对多表查询功能
Jun 25 Python
Python中常见的异常总结
Feb 20 Python
Python中max函数用于二维列表的实例
Apr 03 Python
对python中UDP,socket的使用详解
Aug 22 Python
python中tab键是什么意思
Jun 18 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
Sep 25 Python
如何在scrapy中捕获并处理各种异常
Sep 28 Python
Python3 多线程(连接池)操作MySQL插入数据
Jun 09 Python
Python帮你解决手机qq微信内存占用太多问题
Feb 15 Python
python数字图像处理:图像简单滤波
Jun 28 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提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
基于python发送邮件的乱码问题的解决办法
2013/04/25 PHP
PHP速成大法
2015/01/30 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
phpstorm激活码2020附使用详细教程
2020/09/25 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
jquery之Document元素选择器篇
2008/08/14 Javascript
iframe父页面获取子页面参数的方法
2014/02/21 Javascript
javascript与有限状态机详解
2014/05/08 Javascript
jquery 隐藏与显示tr标签示例代码
2014/06/06 Javascript
JavaScript极简入门教程(二):对象和函数
2014/10/25 Javascript
了不起的node.js读书笔记之node.js中的特性
2014/12/22 Javascript
JS实现网页上随机产生超链接地址的方法
2015/11/09 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
微信小程序顶部可滚动导航效果
2017/10/31 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
基于Layui自定义模块的使用方法详解
2019/09/14 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
Vue环境搭建+VSCode+Win10的详细教程
2020/08/19 Javascript
python实现二叉树的遍历
2017/12/11 Python
python模块导入的方法
2019/10/24 Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
2020/04/01 Python
Python类super()及私有属性原理解析
2020/06/15 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
2020/09/18 Python
python实现计算器简易版
2020/12/17 Python
优秀信贷员先进事迹
2014/01/31 职场文书
教学实验楼管理制度
2014/02/01 职场文书
个人工作主要事迹
2014/05/08 职场文书
五一劳动节活动总结
2015/02/09 职场文书
2015年妇产科工作总结
2015/05/18 职场文书
四年级数学教学反思
2016/02/16 职场文书
HR必备:销售经理聘用合同范本
2019/08/21 职场文书
nginx简单配置多个server的方法
2021/03/31 Servers
nginx日志格式分析和修改
2022/04/28 Servers