最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
python有证书的加密解密程序代码
时间:2014-10-25 编辑:简简单单 来源:一聚教程网
最近在做python的加解密工作,同时加完密的串能在php上能解出来,网上也找了一些靠谱的资料,刚好也有时间我就总结了一下python在加密与解密这块的代码,今后可能还能用的上。相对于php而言python这块加解密组件较多的,分别是:
python-crypto - 这个组件是基本组件,使用的函式相对比较复杂。
ezPyCrypto - 相对简单,但他作出?淼墓?皆课薹ㄓ肫渌?淌较嗉嫒荨?br />
SSLCrypto - 与 ezPyCrypto 是相同一个作者开发,效率上要比ezPyCrypto 好。
但一样不能与其它程序相兼容。
pyopenssl - 似乎是用在https 通讯上的,而我找不到加解密的用法。
M2Crypto - 终于让我找到了,但它有一大缺?,它底层是用 SWIG 与 OpenSSL 交接的。
在Windows安装SWIG 程序是非常难?的。
我选择使用的是M2Crypto,公钥与私钥证书生成有两个方式,一种采用RSA生成,另一种是X509生成。我就把这两种加解密代码分享出来,供大家参考,但转载或使用时请写明出处。
一、 RSA标准方式生成的证书
1.加密解密、加密签名、验证加密签名
代码如下 | 复制代码 |
#encoding: utf8 #使用公钥证书加密开始 #对加密串进行签名 #使用私钥证书解密开始 if PlainText : |
2.字符串生成签名、验证签名
代码如下 | 复制代码 |
#用私钥签名 #用公钥验证签名 |
二、 X509标准方式生成的证书
1.生成证书、公钥文件、私钥文件
代码如下 | 复制代码 |
import time def make_request(bits, cn): def make_certificate_valid_time(cert, days): def make_certificate(bits): encrypted = geekso_encrypt_with_certificate('www.111com.net','111com.net-cret.pem') def geekso_decrypt_with_private_key(message, pk_loc): print '解密串',geekso_decrypt_with_private_key(encrypted, '111com.net-private.pem') |
3.用私钥加密、证书解密
代码如下 | 复制代码 |
def geekso_encrypt_with_private_key(message,pk_loc): encrypted = geekso_encrypt_with_private_key('www.111com.net', '111com.net-private.pem') def geekso_decrypt_with_certificate(message, cert_loc): decrypting = geekso_decrypt_with_certificate(encrypted, '111com.net-cret.pem') |
4.用私钥签名、证书验证签名
代码如下 | 复制代码 |
def geekso_sign_with_private_key(message, pk_loc, base64 = True): signature = geekso_sign_with_private_key('www.111com.net','111com.net-private.pem') def geekso_verifysign_with_certificate(message, signature, cert_loc, base64 = True): |
-
上一个: python无证书加密解密例子
相关文章
- PHP导出数据超时的优化建议解读 10-31
- PHP之mysql位运算解析 10-31
- Laravel实现登录跳转功能解析 10-31
- php双向队列解读 10-31
- Laravel异常上下文解决教程 10-24
- php数组查询元素位置方法介绍 10-24