这是支付中最常用的加密,非对称加密,也保证了安全性,也不怕对方泄露了我们的私钥。因为这是我们自己生产的密钥,这个方式网上一堆。一言不合上代码
这代码还是sha1,直接改成256应该能用现在对接的几个还是sha1,所以没有写256的代码
class rsa_sign:
def rsa_sign( private_text, data):
from Crypto.PublicKey import RSA
from Crypto.Hash import SHA
from Crypto.Signature import PKCS1_v1_5
from base64 import b64encode, b64decode
import hashlib
# priKey = open(PRIVATE_KEY, "r").read() #这是从文件中读密钥的路径,我的做法是直接从数据库中取密钥
key = RSA.importKey(private_text) # 检验密钥格式
h = SHA.new(data.encode('utf-8'))
signer = PKCS1_v1_5.new(key)
signature = signer.sign(h)
return b64encode(signature)
def rsa_verify( public_text, data, sign):
from Crypto.PublicKey import RSA
from Crypto.Hash import SHA
from Crypto.Signature import PKCS1_v1_5
from base64 import b64encode, b64decode
# pubKey = open(PUBLIC_KEY, "r").read()
key = RSA.importKey(public_text)
h = SHA.new(data.encode('utf-8'))
verifier = PKCS1_v1_5.new(key)
sign = b64decode(sign)
return verifier.verify(h, sign)
这代码还是sha1,直接改成256应该能用现在对接的几个还是sha1,所以没有写256的代码