用WebCryptoAPI替换cryptico.js - 如何获取公钥字符串?

问题描述 投票:0回答:1

我希望有人能帮帮忙。我一直在使用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,我仍然会得到相同的结果。

我做错了什么,拜托?

非常感谢

javascript public-key-encryption webcryptoapi cryptico
1个回答
0
投票

CryptoKey本身不是通过简单的console.log可见。首先需要将其转换为所需的格式。你可以使用exportKey(只要你将extractable设置为'true - 你做了什么)。

Here are some examples.

© www.soinside.com 2019 - 2024. All rights reserved.