Kam*_*mil 2 javascript openssl rsa webcrypto-api
现在,我正在通过简单的测试来测试 Web Crypto API。所以,我有用户的公钥(作为字符串),我想让他传递他的私钥(也作为字符串),所以我的应用程序可以做一些加密/解密。因此,我尝试通过执行以下操作将他的密钥导入到 Web Crypto API:
var textEncoder = new TextEncoder();
var alg = {
name: "RSA-OAEP",
hash: {name: "SHA-256"}
}
window.crypto.subtle.importKey('raw', textEncoder.encode(myPublicKey), alg, false, ['encrypt'])
Run Code Online (Sandbox Code Playgroud)
密钥由
openssl genrsa -out mykey.pem 4096
openssl rsa -in mykey.pem -pubout > mykey.pub
Run Code Online (Sandbox Code Playgroud)
WCAPI 抛出
Unsupported import key format for algorithm
Run Code Online (Sandbox Code Playgroud)
我在 alg 中尝试了其他哈希,但仍然没有成功。
一个例子的帮助会很好。
你有一些错误:
更改raw为spki(由 James K Polk 指出)
TextEncoder.encode()不适用于二进制密钥。见文本编码器
返回一个包含 utf-8 编码文本的 Uint8Array。
将 OpenSSL 生成的 PEM 密钥转换为二进制 ArrayBuffer。convertPemToBinary(pemKey)从这里使用/sf/answers/2449703301/。