问题标签 [webcrypto-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
858 浏览

javascript - IE 10 和 android 4.x 上的 webcrypto 解决方案

这是一种在 IE10 和 Android4.x 上找到支持 webcrypto 的 polyfill 的方法吗?我为 IE11 找到了 webcrypto-shim。

我需要 JavaScript 中 Jose-jwt 插件中的 webcrypto 来对某些数据进行客户端加密

0 投票
1 回答
2486 浏览

encryption - WebCrypto:使用 crypto.subtle.importKey 导入具有模数和指数的 rsa 公钥

我通过 jsbn 生成了 rsa 密钥:

“e”是指数,“n”是模数

我想使用crypto.subtle.importKey.

这是我发现的错误:

DOMException:无法对 JWK 成员“n”进行 base64url 解码或包含填充

有谁知道问题出在哪里?

看看我下面的代码。

0 投票
3 回答
1040 浏览

import - WebCrypto: importing private key for decrypt by crypto.subtle.importkey(...)

I want to import private key by web crypto. This is my code:

The error that I found is "DOMException" and PromiseValue is "undefined".

I'm running in Mozilla Firefox and Chrome. This is my key:

I don't know where is the problem. It works for importing public key.

0 投票
1 回答
186 浏览

key - 通过jsbn库加密,然后通过WebCrypto解密

我们使用 jsbn 库 PKCS#1 加密样式填充来加密消息。现在我们想为网络加密更改 jsbn 库。

AES 密钥没有问题。问题在于 RSA 密钥。

我已经通过 jsbn 库加密了消息。是否可以使用 RSA 密钥通过网络加密解密消息?

WebCrypto 文档仅支持 RSA-OAEP 算法进行解密,是否可以使用 PKCS (RSASSA-PKCS1-v1_5) 算法?

0 投票
2 回答
210 浏览

javascript - 如何通过 WebRTC 数据通道发送有效负载和加密签名?

我有一个用例,其中对等方必须使用 WebRTC 数据通道向另一个对等方发送消息和签名。不幸的是,使用 WebCrypto 生成的签名是一个 ArrayBuffer,这意味着当我使用 JSON.stringify() 发送对象时,签名会丢失。

有没有一种方法可以对 ArrayBuffer 签名进行编码,使我能够通过数据通道传输字符串化对象,而不会影响接收端的签名?

0 投票
1 回答
410 浏览

cryptography - 带有 SHA-1 的 importKey alg RSA-OAEP 在 safari 11 上不起作用

按键操作问题出现在 Outlook for mac 和 Safari 11 上。当我在 Mac 上尝试 Chrome/Firefox 时,它运行良好。

我使用 js 的 webCrypto 库: https ://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API

此外,另一个需要解决 safari 问题的加密库: https ://github.com/vibornoff/webcrypto-shim

它停留在“importKey”功能的级别:

我得到的错误 : OpeartionTypeError :Member JsonWebKey.kty 是必需的,并且必须是 DOMString 的实例。

我读了这个问题:Safari WebCrypto API RSA-OAEP encryption and the solution accepted using 'RSA-OAEP' alg and hash of 'SHA-1' 但无论我尝试更改什么,我总是得到相同的错误。

我不确定 webcrypto 的所有其他功能是否可以在 safari 11 上运行,但不是我坚持这一点。

非常感谢。

0 投票
1 回答
1768 浏览

javascript - 如何 ES6 代理 ArrayBuffer 或 Uint8Array?

这些工作:

这些不会:

错误:

Failed to execute 'digest' on 'SubtleCrypto': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'

instanceof Uint8Arrayinstanceof ArrayBuffer在两种情况下都返回 true。

0 投票
2 回答
4568 浏览

google-chrome - 如何在 Chrome 中为不安全的来源启用 crypto.subtle?

在 Chrome 60 中,他们添加了一项禁用非 TLS 连接的功能。出于安全原因,crypto.subtle我们的产品需要运行本地服务器并转发一些安全的远程连接。localhost因为localhost它在技术上不是一个命名域,所以我们不能使用 TLS——实际上导致crypto.subtle在 Chrome(以及像 Opera 这样的基于 chromium 的浏览器)中无法使用,并迫使我们使用像asmCrypto.js这样的安全性较低的 shim 。有没有办法告诉 Chromecrypto.subtle通过标题启用?有什么方法可以在我们可以告诉用户的设置中禁用新功能(最坏的情况)?

0 投票
1 回答
117 浏览

javascript - 使用 WebCryptography API 获取 CryptoJS 单词

我正在使用 Google 的 CryptoJS 将功能迁移到浏览器原生 WebCryptography API。

使用 CryptoJS,我使用以下代码获取 SHA1 哈希的 words 数组

它返回[888149035, -1762573935, 1178769020, -1914057363, 481296384]

使用 WebCrypto API,我使用

并且hashArray[52, 240, 20, 43, 150, 241, 65, 145, 70, 66, 150, 124, 141, 233, 205, 109, 28, 176, 0, 0]

如何将此结果转换为与 CyptoJS 相同的数组?

0 投票
1 回答
1732 浏览

javascript - JavaScript WebCrypto importKey 错误:AES 密钥数据必须是 128 或 256 位

我正在尝试导入现有密钥,但我得到的是:“AES 密钥数据必须是 128 或 256 位”

我有一个从 0 到 255 的 128 int 的 ArrayBuffer,即使我用 Uint8Array 包装它也无法正常工作。即使是新的 Uint8Array(128) 也会返回相同的错误。