查看JSBN,RSAGenerate(B,E)以位长B和公钥E作为参数。这是否意味着公钥只能单独生成并作为参数提供?这是否也意味着Forge不能生成像BigInt http://www.leemon.com/crypto/BigInt.html这样的密钥对
谢谢
发布于 2014-12-13 09:16:07
RSAGenerate不使用公钥,而是采用十六进制的公钥指数。请注意,您必须谨慎地选择这一点,因为它必须与φ(n)相同。一个很好的价值是10001 (在十六进制中)与其他实现的兼容性。
可以通过设置n和e从私钥创建公钥。
var pubkey = new RSAKey();
pubkey.n = privKey.n;
pubkey.e = privKey.e;伪造文档包含三个不同的示例,它们使用相同的公共指数生成RSA密钥对,如下所示:
// generate an RSA key pair synchronously
var keypair = rsa.generateKeyPair({bits: 2048, e: 0x10001});// generate an RSA key pair asynchronously (uses web workers if available)
// use workers: -1 to run a fast core estimator to optimize # of workers
rsa.generateKeyPair({bits: 2048, workers: 2}, function(err, keypair) {
// keypair.privateKey, keypair.publicKey
});// generate an RSA key pair in steps that attempt to run for a specified period
// of time on the main JS thread
var state = rsa.createKeyPairGenerationState(2048, 0x10001);
var step = function() {
// run for 100 ms
if(!rsa.stepKeyPairGenerationState(state, 100)) {
setTimeout(step, 1);
}
else {
// done, turn off progress indicator, use state.keys
}
};
// turn on progress indicator, schedule generation to run
setTimeout(step);https://stackoverflow.com/questions/27457123
复制相似问题