0

我希望有人能帮帮忙。我一直在使用 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 一样获得公钥字符串,我确信我正在做一些非常愚蠢的事情,但我似乎无法得到它。

我已经使用crypto.subtle.exportKey了“spki”、“raw”和“jwk”选项,但没有任何乐趣。

即使我使用 RSA 而不是 ECDSA 生成密钥,我仍然得到相同的结果。

请问我做错了什么?

非常感谢

4

1 回答 1

0

CryptoKey本身无法通过简单的console.log. 首先需要将其转换为所需的格式。您可以为此使用exportKey(只要您已设置extractable为 `true - 您已这样做)。

这里有些例子。

于 2018-09-07T11:34:28.120 回答