如何查看在webcrypto API中生成的实际生成的密钥对

时间:2017-07-19 21:33:02

标签: web

我使用

生成了密钥对
window.crypto.subtle.generateKey({
    name: "RSASSA-PKCS1-v1_5",
    modulusLength: 2048, //can be 1024, 2048, or 4096
    publicExponent: new Uint8Array([0x01, 0x00, 0x01]),
    hash: { name: "SHA-256" } //can be "SHA-1", "SHA-256", "SHA-384", or "SHA-512"
},
true,
["sign", "verify"]
).then(function(keyPair) {
   console.log("Exporting from keyPair", keyPair);
   console.log("type pf key",typeof(keyPair.publicKey))
})
.catch(function(err) {
   console.error(err);
});

但是日志将public-key和privateKey显示为对象,而不是字符串中生成的键的实际表示。有没有办法找出实际生成的键的字符串值。

1 个答案:

答案 0 :(得分:1)

如果您需要明确获取密钥,则需要导出密钥:

window.crypto.subtle.exportKey(
    "jwk", //can be "jwk" (public or private), "spki" (public only), or "pkcs8" (private only)
    publicKey //can be a publicKey or privateKey, as long as extractable was true
)
.then(function(keydata){
    //returns the exported key data
    console.log(keydata);
})
.catch(function(err){
    console.error(err);
});

那说出于安全原因,你真的只想使用不可导出的密钥,而不是自己处理密钥。