我希望有人能帮帮忙。我一直在使用cryptico.js并通过以下方式生成密钥:
var RSAkey = cryptico.generateRSAKey(passphrase, 512);
var publicKeyString = cryptico.publicKeyString(RSAkey);
给我干净利用公共密钥,例如:vnY5f+HVUQa2oBZKsb2LUgTlso/wtVsA5Ytqlr1RL13xVN81mnIHoL/5/8CKG4rQ/vQfnBAUBYfJzBQGeAXYnw==
我转而使用WebCrypto API,因为我想使用不同的密钥类型:
promise_key = crypto.subtle.generateKey({name: "ECDSA", namedCurve: "P-256", hash: {name: "SHA-256"} }, true, ["sign", "verify"]);
promise_key.then(function(key) {
private_key_object = key.privateKey;
public_key_object = key.publicKey;
console.log(key.publicKey);
});
我想像使用cryptico一样获取Public Key String,我确信我做的事情非常愚蠢,但我似乎无法得到它。
我使用了crypto.subtle.exportKey
和'spki','raw'和'jwk'选项,但没有快乐。
即使我使用RSA生成密钥而不是ECDSA,我仍然会得到相同的结果。
我做错了什么,拜托?
非常感谢
CryptoKey
本身不是通过简单的console.log
可见。首先需要将其转换为所需的格式。你可以使用exportKey(只要你将extractable
设置为'true - 你做了什么)。