python实现aes加密解密,RSA签名和验签,RSA加密解密,并调用接口

最近工作需要,用python实现调用接口的示例代码,过程涉及到很多的加密算法,值得分享一下。首先公钥和私钥如何生成,并且能兼容java平台,尝试了很多方法。最终决定用openssl命令前提,需要安装openssl,Crypto库生成公钥私钥对过程:生成私钥:openssl genrsa -out rsa_private_key.pem 1024 根据私钥生成公钥: op
摘要由CSDN通过智能技术生成
最近工作需要,用python实现调用接口的示例代码,过程涉及到很多的加密算法,值得分享一下。
首先公钥和私钥如何生成,并且能兼容java平台,尝试了很多方法。最终决定用openssl命令
前提,需要安装openssl,Crypto库
生成公钥私钥对过程:
生成私钥:
openssl genrsa -out rsa_private_key.pem 1024   


根据私钥生成公钥:
openssl rsa -in rsa_private_key.pem -out rsa_public_key.pem -pubout

这时候的私钥还不能直接被使用,需要进行PKCS#8编码
openssl pkcs8 -topk8 -in rsa_private_key.pem -out pkcs8_rsa_private_key.pem -nocrypt

命令中指明了输入私钥文件为rsa_private_key.pem,输出私钥文件为pkcs8_rsa_private_key.pem,不采用任何二次加密(-nocrypt)
这时候就获得了一对公钥和私钥,只要拿到对方的公钥,用自己的公钥的格式替换就可以使用啦~~

我们最好把全局变量给提出来,便于管理。这样子就不用改代码都改一遍了

文件Gl.py

#!-*- coding:utf-8 -*-  
'''  
Created on 2013-6-15  
  
@author: shangwei  
'''  
'''  
全局变量  
'''  
from Crypto.PublicKey import RSA  
'''  
publickey为对方的公钥  
privatekey为商户自己的私钥  
'''  
publickey = RSA.importKey(open('rsa_public_key.pem','r').read())  
privatekey=RSA.importKey(open('pkcs8_rsa_private_key.pem','r').read())  
merchantaccount='YB010000000xx'  
URL='xxx.xxx.com' 

    #!-*- coding:utf-8 -*-  
    '''  
    Created on 2013-5-24  
      
    @author: shangwei  
    '''  
    from Crypto import Random  
    from Crypto.Cipher import PKCS1_v1_5  
    from Crypto.Hash import SHA  
    from hashlib import sha1  
    from rsa import key, common, encrypt  
    from urllib import urlencode   
    import base64  
    import hmac  
    from Crypto.PublicKey import RSA  
    import urllib  
    import urllib2  
    import time    
    import json  
    from Crypto.Signature import PKCS1_v1_5 as pk  
    import Gl  
    class MerchantAPI:  
          
        def doPost(self,url,values):  
            '''  
            post请求  
            参数URL  
            字典类型的参数  
            '''  
            req = urllib2.Request(url)  
            data = urllib.urlencode(values)  
            res &#
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值