如何在javascript的RSA-OAEP算法中使用publicExponent as 65537

如何在javascript的RSA-OAEP算法中使用publicExponent as 65537,javascript,encryption,rsa,padding,Javascript,Encryption,Rsa,Padding,实际上,我正在使用RSA-OAEP和SHA-256以及MGF1padding,使用Web加密API在javascript中进行加密和解密。我需要做的实际场景是在java中,我能够使用具有相同算法规范的公钥和私钥进行加密和解密。现在我需要做的是用公钥在javascript中加密一些消息,然后用java解密。但我发现在javascript中,上述算法规范使用的公共指数为5。所以我想把它改成65537。我尝试在javascript中使用以下代码 window.crypto.subtle.gener

实际上,我正在使用RSA-OAEP和SHA-256以及MGF1padding,使用Web加密API在javascript中进行加密和解密。我需要做的实际场景是在java中,我能够使用具有相同算法规范的公钥和私钥进行加密和解密。现在我需要做的是用公钥在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"]);

但是,生成的公钥的公共指数仍然是5。我做错了什么?me的最后一个要求是,使用RSA-OAEP和SHA-256和MGF1padding在javascript中加密一些消息,这些消息将能够使用私钥在java中解密,反之亦然。

使用此选项。相当于65437

 publicExponent: new Uint8Array([0x01, 0x00, 0x01])
publicExponent是一个数组,uint8数组中的每个元素都是范围为0..256的非负整数

  • 大整数

    typedef uint8数组BigInteger

  • BigInteger typedef是一个UInt8数组,它以大端顺序保存任意大小的无符号整数


    如果使用publicExponent:new Uint8Array([0x01,0x00,0x01]),则指数值将为5。我可以在rsa oaep中使用65537吗?我需要使用私有密钥在javascript中进行解密,私有密钥是使用此算法规范从java代码生成的。如何实现这一点。给我一些代码我提供的uint8array值相当于65537。你为什么说这个值是5?您可能对公钥进行了错误的检查。您可以在此处看到示例,但生成公钥后,指数显示为[1,0,1],这是5吗?您是说默认情况下,在webcrypto API中,RSA-OAEP和SHA-256使用MGF-1,而公钥指数为65537吗?
    [0x01, 0x00, 0x01] = 00000001 00000000 00000001 = 65537