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中使用Mako模版库的简单教程
Apr 08 Python
Python中的字符串查找操作方法总结
Jun 27 Python
Python中多线程的创建及基本调用方法
Jul 08 Python
python制作爬虫爬取京东商品评论教程
Dec 16 Python
Scrapy爬虫实例讲解_校花网
Oct 23 Python
python3处理含有中文的url方法
May 10 Python
Python中新式类与经典类的区别详析
Jul 10 Python
Python3使用xlrd、xlwt处理Excel方法数据
Feb 28 Python
keras实现调用自己训练的模型,并去掉全连接层
Jun 09 Python
Python使用sys.exc_info()方法获取异常信息
Jul 23 Python
解决pycharm修改代码后第一次运行不生效的问题
Feb 06 Python
关于的python五子棋的算法
May 02 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
PHP4和PHP5共存于一系统
2006/11/17 PHP
FCKeditor的安装(PHP)
2007/01/13 PHP
分享一个Laravel好用的Cache宏
2015/03/02 PHP
php+ajax制作无刷新留言板
2015/10/27 PHP
thinkphp框架下实现登录、注册、找回密码功能
2016/04/06 PHP
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
2011/04/12 Javascript
js实现单一html页面两套css切换代码
2013/04/11 Javascript
JS画5角星方法介绍
2013/09/17 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
Bootstrap模态框调用功能实现方法
2016/09/19 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
[59:08]Ti4 冒泡赛第二天 NEWBEE vs Titan 2
2014/07/15 DOTA
Python提取Linux内核源代码的目录结构实现方法
2016/06/24 Python
Python中进程和线程的区别详解
2017/10/29 Python
python定向爬取淘宝商品价格
2018/02/27 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
python list转置和前后反转的例子
2019/08/26 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
2020/04/07 Python
html5桌面通知(Web Notifications)实例解析
2014/07/07 HTML / CSS
canvas绘图按照contain或者cover方式适配并居中显示
2019/02/18 HTML / CSS
巴西宠物商店:Cobasi
2019/04/19 全球购物
网上开店必备创业计划书
2014/01/26 职场文书
中学自我评价
2014/01/31 职场文书
事业单位竞聘上岗实施方案
2014/03/28 职场文书
微笑面对生活演讲稿
2014/05/13 职场文书
公司节能减排方案
2014/05/16 职场文书
员工表扬信怎么写
2015/05/05 职场文书
python 爬取豆瓣网页的示例
2021/04/13 Python
CSS完成视差滚动效果
2021/04/27 HTML / CSS
在redisCluster中模糊获取key方式
2021/07/09 Redis