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解释执行原理分析
Aug 22 Python
Python中实现对list做减法操作介绍
Jan 09 Python
Python编程中运用闭包时所需要注意的一些地方
May 02 Python
Python中列表、字典、元组数据结构的简单学习笔记
Mar 20 Python
Python+OpenCV实现车牌字符分割和识别
Mar 31 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
Jul 07 Python
Python基本socket通信控制操作示例
Jan 30 Python
Django框架模板文件使用及模板文件加载顺序分析
May 23 Python
Mysql数据库反向生成Django里面的models指令方式
May 18 Python
Python利器openpyxl之操作excel表格
Apr 17 Python
关于python中readlines函数的参数hint的相关知识总结
Jun 24 Python
Python采集壁纸并实现炫轮播
Apr 30 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
动漫定律:眯眯眼都是怪物!这些角色狠话不多~
2020/03/03 日漫
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
php后门URL的防范
2013/11/12 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
页面加载完后自动执行一个方法的js代码
2014/09/06 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
javascript数据类型验证方法
2015/12/31 Javascript
前端框架Vue.js中Directive知识详解
2016/09/12 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
jquery UI Datepicker时间控件冲突问题解决
2016/12/16 Javascript
Three.js基础部分学习
2017/01/08 Javascript
详解nodeJS之路径PATH模块
2017/05/31 NodeJs
浅谈Node.js ORM框架Sequlize之表间关系
2017/07/24 Javascript
原生JS实现列表子元素顺序反转的方法分析
2018/07/02 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
2018/09/21 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
原生js实现移动端Touch轮播图的方法步骤
2019/01/03 Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
2019/07/24 Javascript
[35:29]Secret vs VG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
修改python plot折线图的坐标轴刻度方法
2018/12/13 Python
对Python发送带header的http请求方法详解
2019/01/02 Python
Python实现的ftp服务器功能详解【附源码下载】
2019/06/26 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
全球知名提供各类营养保健品的零售商:Vitamin Shoppe
2016/10/09 全球购物
保险经纪人求职信
2014/03/11 职场文书
单位法定代表人授权委托书
2014/09/20 职场文书
债务追讨律师函
2015/06/24 职场文书
2015元旦感言
2015/12/09 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书
「魔法少女伊莉雅」美游粘土人开订
2022/03/21 日漫