【问题标题】:MsCrypto Import key method fails in IE11 with "invalid arguement" errorMsCrypto 导入密钥方法在 IE11 中失败,出现“无效争论”错误
【发布时间】:2019-09-19 14:14:39
【问题描述】:

在尝试使用 window.msCrypto.subtle.importKey 方法在 IE 11 中导入公钥时出现“无效参数”错误,而相同的方法在 Edge 和 chrome 中工作正常

下面是导入方法的输入载荷,

    var jwk_base64 = publicKey.replace(/\+/g, '-').replace(/\//g,   '_').replace(/\=+$/, '');

    var cryptoVar= window.crypto || window.msCrypto;
    var cryptoSubtle = cryptoVar.subtle;
    let importOp = cryptoSubtle.importKey(
        "jwk",
        {
            kty: "RSA",
            e: "AQAB",
            n: jwk_base64,
            alg: "RSA-OAEP-256",
            ext: true,
        },
        { name: "RSA-OAEP", hash: { name: "sha-256" } },
        false,
        ["encrypt"]);

我们需要进行什么更改才能使其适用于 IE11?

【问题讨论】:

    标签: encryption cryptography internet-explorer-11 encryption-asymmetric


    【解决方案1】:

    您可以使用Web Cryptography API shim 使其在IE 中运行。我使用以下命令安装包:

    npm i webcrypto-shim
    npm i promiz
    

    然后将脚本链接到html代码中:

    <script src="node_modules/promiz/promiz.js"></script>
    <script src="node_modules/webcrypto-shim/webcrypto-shim.js"></script>
    

    之后,脚本将在 IE 11 中运行良好。

    【讨论】:

      猜你喜欢
      • 2015-08-03
      • 2018-10-08
      • 1970-01-01
      • 2021-01-22
      • 2019-07-03
      • 2022-08-13
      • 2020-03-12
      • 2013-02-12
      • 1970-01-01
      相关资源
      最近更新 更多