实际上,我使用 RSA-OAEP 和 SHA-256ANDMGF1PADDING 使用 Web 加密 API 在 JavaScript 中进行加密和解密。我需要做的实际场景是在java中我能够使用具有相同算法规范的公钥和私钥进行加密和解密。但它使用了 65537 公共指数。现在我需要做的是使用公钥在 JavaScript 中加密一些消息并在 java 中解密它。但我发现在JavaScript中,对于上述算法规范,它使用公共指数为5。所以我想将其更改为65537。我尝试在JavaScript中使用以下代码。
window.crypto.subtle.generateKey({
name: "RSA-OAEP",
modulusLength: 2048,
publicExponent: new Uint8Array([0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 0x01]),
hash: {name: "SHA-256"},
},
true,
["encrypt", "decrypt"]);
Run Code Online (Sandbox Code Playgroud)
但生成的公钥的公共指数仍然是 5。我做错了什么?我的最终要求是,使用 RSA-OAEP 和 SHA-256ANDMGF1PADDING 在 JavaScript 中加密一些消息,并且能够使用私钥在 java 中解密,反之亦然。