使用node.js创建RSA签名并使用python进行验证

时间:2016-03-09 17:06:42

标签: python node.js digital-signature

我尝试使用此代码在节点中创建签名:

var crypto = require('crypto');

var data = 'some data'
var signer = crypto.createSign('RSA-SHA256');
signer.write(data, 'base64');
signer.end();
var signature = signer.sign(privateKey, 'base64');

签名和数据被发送到python服务器。

现在我想用python代码验证它:

from base64 import b64decode, b64encode  
from Crypto.Hash import SHA256
from Crypto.PublicKey import RSA
from Crypto.Signature import PKCS1_v1_5

rsakey = RSA.importKey(public_key)
signer = PKCS1_v1_5.new(rsakey)                     
digest = SHA256.new()                               
digest.update(data)                      
signer.verify(digest, b64decode(signature))

验证失败。 当我使用相同的语言进行签名并验证它是否有效。 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,并且发现它可以工作:

import rsa
rsa.verify(message, signature, public_key)