Javascript HTML5到RSA公开加密的加密模块

Javascript HTML5到RSA公开加密的加密模块,javascript,html,encryption,cryptography,rsa,Javascript,Html,Encryption,Cryptography,Rsa,如何使用RSA使用公钥和PKCS填充进行加密,我一直在尝试这样做,但一直无法导入密钥,到目前为止,我有以下几点: crypto.subtle.importKey('spki', key, {name: 'RSASSA-PKCS1-v1_5', hash: {name: 'SHA-256'}}, false, ['encrypt']).then(i => console.log(i)).catch(err => console.warn(err.message)) 键当然是使用tex

如何使用RSA使用公钥和PKCS填充进行加密,我一直在尝试这样做,但一直无法导入密钥,到目前为止,我有以下几点:

crypto.subtle.importKey('spki', key, {name: 'RSASSA-PKCS1-v1_5', hash: {name: 'SHA-256'}}, false, ['encrypt']).then(i => console.log(i)).catch(err => console.warn(err.message))
当然是使用
textcoder
编码的键。这给了我一个错误
无法使用指定的密钥用法创建密钥

我为AES-CBC做了导入和成功的加密/解密,并希望为RSA做同样的事情,任何帮助都将不胜感激

p.S.我尽量不使用库,因此这应该是最后一个选项。

在“RSASSA-PKCS1-v1_5”中的“SSA”代表“带附录的签名方案”,因此它是一个签名算法,不能与“加密”密钥一起使用

带有PKCS#1填充的RSA加密算法将是“RSAES-PKCS1-v1#u 5”,但根据它不受支持(“Chrome在Web Crypto默认启用之前的早期支持此算法,但后来放弃了支持。”)。以下是有关不支持它的原因的详细信息:

对于WebCrypto中的RSA加密,似乎唯一支持的填充是RSA-OAEP。

在“RSASSA-PKCS1-v1_5”中的“SSA”代表“带附录的签名方案”,因此它是一种签名算法,不能与“加密”密钥一起使用

带有PKCS#1填充的RSA加密算法将是“RSAES-PKCS1-v1#u 5”,但根据它不受支持(“Chrome在Web Crypto默认启用之前的早期支持此算法,但后来放弃了支持。”)。以下是有关不支持它的原因的详细信息:


对于WebCrypto中的RSA加密,似乎唯一支持的填充是RSA-OAEP。

我现在尝试先使用RSA-OAEP导入密钥,但得到的是
DomeException
,我的代码是
crypto.minute.importKey('spki',key,{name:'RSA-OAEP',hash:{name:'SHA-256'},false,['encrypt'])。然后(i=>console.log(i)).catch(err=>console.warn(err.name、err.code、err.message))
,你能帮我找出哪里出了问题吗?密钥已经用
textcoder
编码了。我设法找到了答案,显然,我应该对公钥的主体部分进行base64解码,并将结果转换为uint8array,然后在导入函数中使用它。我现在正试图首先使用RSA-OAEP导入密钥我得到的是
DOMException
,我的代码是
crypto.minute.importKey('spki',key,{name:'RSA-OAEP',hash:{name:'SHA-256'},false,['encrypt'])。然后(i=>console.log(i)).catch(err=>console.warn(err.name,err.code,err.message))
,你能帮我找出哪里出了问题吗?密钥已经用
textcoder
编码了。我设法找到了答案,显然,我应该对公钥的主体部分进行base64解码,并将结果转换为uint8array,然后在导入函数中使用它