首页 > 解决方案 > 如果 importKey() 已经有了,为什么还要在 decrypt() 中定义算法?

问题描述

要使用Web Crypto API解密某些内容,您必须首先导入密钥:

const result = crypto.subtle.importKey(
    format,
    keyData,
    algorithm,
    extractable,
    usages
);

这将返回一个承诺。如果您附加.then(function(importedKey) {})到它,您将能够使用实际导入的密钥来解密:

const result = crypto.subtle.decrypt(algorithm, key, data);

我的问题是......既然导入的密钥对象已经指定了算法,为什么在尝试进行实际解密时需要重新指定算法?

与此相关,importKey似乎支持 RSASSA-PKCS1-v1_5 作为算法,但解密不支持。如果 decrypt() 不支持 RSASSA-PKCS1-v1_5 那么为什么 importKey?

标签: javascriptencryptionrsawebcrypto-apisubtlecrypto

解决方案


推荐阅读