最近要采用公钥秘钥的方式验证身份,具体就不细说了,这里主要记录再网上查找配置签名和验签过程中遇到的问题,
from Crypto.Hash import SHA
from Crypto.PublicKey import RSA
from Crypto.Signature import PKCS1_v1_5 as Signature_pkcs1_v1_5
def sign(data):
with open('myPrivateKey.pem') as pk:
key_data = pk.read()
print(key_data)
rsaKey = RSA.importKey(key_data, passphrase='123')
print(rsaKey)
signer = Signature_pkcs1_v1_5.new(rsaKey)
digest = SHA.new()
digest.update(unsign_data)
sign = signer.sign(digest)
signature = base64.b64encode(sign)
一直报这个错误 ValueError: RSA key format is not supported
如果你再生成公钥私钥的时候加密了,一定要密码正确
rsaKey = RSA.importKey(key_data, passphrase=b'jy123')
'myPrivateKey.pem' 注意配置好,如果其他程序调用这个方法,接会报错,建议设置绝对路径os.path.dirname实现