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中from module import * 的一个坑
Jul 20 Python
mysql 之通过配置文件链接数据库
Aug 12 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
Mar 20 Python
win10下tensorflow和matplotlib安装教程
Sep 19 Python
python实现淘宝秒杀脚本
Jun 23 Python
Pandas数据离散化原理及实例解析
Nov 16 Python
在python中做正态性检验示例
Dec 09 Python
python opencv 检测移动物体并截图保存实例
Mar 10 Python
Python实现从N个数中找到最大的K个数
Apr 02 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
May 13 Python
python属于软件吗
Jun 18 Python
Python numpy大矩阵运算内存不足如何解决
Nov 19 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实现下载功能的代码
2012/09/29 PHP
smarty基础之拼接字符串的详解
2013/06/18 PHP
php中的curl使用入门教程和常见用法实例
2014/04/10 PHP
Codeigniter的dom类用法实例
2015/06/26 PHP
PHP实现数据分页显示的简单实例
2016/05/26 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
2020/05/14 PHP
JS.GetAllChild(element,deep,condition)使用介绍
2013/09/21 Javascript
解决js下referer兼容各大浏览器的方法
2014/11/03 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
2015/01/05 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
浅析JavaScript作用域链、执行上下文与闭包
2016/02/01 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
canvas快速绘制圆形、三角形、矩形、多边形方法介绍
2016/12/29 Javascript
jQuery实现字符串全部替换的方法【推荐】
2017/03/09 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
Angularjs 实现动态添加控件功能
2017/05/25 Javascript
angularjs2中父子组件的数据传递的实例代码
2017/07/05 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
js操作二进制数据方法
2018/03/03 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
[01:06:07]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS CIS
2014/05/22 DOTA
跟老齐学Python之有容乃大的list(1)
2014/09/14 Python
Python列表计数及插入实例
2014/12/17 Python
Python多进程分块读取超大文件的方法
2016/04/13 Python
Python实现Linux的find命令实例分享
2017/06/04 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
2019/01/22 Python
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
PAUL HEWITT手表美国站:德国北部时尚生活配饰品牌,船锚元素
2017/11/18 全球购物
Belvilla德国:在线预订度假屋
2018/04/10 全球购物
ghd澳大利亚官方网站:英国最受欢迎的美发工具品牌
2018/05/21 全球购物
外联部演讲稿
2014/05/24 职场文书
建筑工程质量通病防治方案
2014/06/08 职场文书
群众路线教育实践活动学习笔记内容
2014/11/06 职场文书
饭店服务员岗位职责
2015/02/09 职场文书
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript