【发布时间】:2016-03-09 17:06:42
【问题描述】:
我正在尝试使用此代码在节点中创建签名:
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))
验证失败。 当我使用相同的语言进行签名和验证时,它可以工作。 有什么想法吗?
【问题讨论】:
标签: python node.js digital-signature