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代码(逐级优化)
May 25 Python
Python基于SMTP协议实现发送邮件功能详解
Aug 14 Python
django_orm查询性能优化方法
Aug 20 Python
Python rstrip()方法实例详解
Nov 11 Python
Django如何开发简单的查询接口详解
May 17 Python
如何使用Python自动控制windows桌面
Jul 11 Python
tensorflow之自定义神经网络层实例
Feb 07 Python
浅谈Python中的异常和JSON读写数据的实现
Feb 27 Python
Python selenium爬取微博数据代码实例
May 22 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
Sep 05 Python
去除python中的字符串空格的简单方法
Dec 22 Python
详解Python常用的魔法方法
Jun 03 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/11/23 PHP
PHP中的cookie不用刷新就生效的方法
2012/02/04 PHP
一段实用的php验证码函数
2016/05/19 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
2016/12/15 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
Jquery 高亮显示文本中重要的关键字
2009/12/24 Javascript
移动节点的jquery代码
2014/01/13 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
Bootstrap每天必学之简单入门
2015/11/19 Javascript
javascript实现随机生成DIV背景色
2016/06/20 Javascript
Bootstrap 源代码分析(未完待续)
2016/08/17 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
2017/01/21 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
ECMAScript6--解构
2017/03/30 Javascript
JavaScript变量类型以及变量作用域详解
2017/08/14 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
Angular2学习笔记之数据绑定的示例代码
2018/01/03 Javascript
js中数组对象去重的两种方法
2019/01/18 Javascript
vue模块拖拽实现示例代码
2019/03/09 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
python中多个装饰器的执行顺序详解
2018/10/08 Python
Python网页正文转换语音文件的操作方法
2018/12/09 Python
Python银行系统实战源码
2019/10/25 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
Python爬虫教程之利用正则表达式匹配网页内容
2020/12/08 Python
婚内房产协议书范本
2014/10/02 职场文书
2014年招商引资工作总结
2014/11/22 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
2015年科室工作总结
2015/04/10 职场文书
2015年民主评议党员工作总结
2015/05/19 职场文书
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis