问题标签 [subtlecrypto]

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 回答
74 浏览

javascript - 如何使用 Subtle 的密码学 API 销毁密钥?

在 WebCrypto/Subtle 加密 API 中,您可以生成密钥等等。然而,似乎明显缺乏.destroyKey()或类似的东西。

是否在引用计数达到零或类似情况时清理键?有没有办法从内存中显式销毁/删除密钥?

请注意,我担心的不是安全问题,因为我知道这不会带来太多的安全好处,尽管我担心资源泄漏等问题。无法明确地清理自己的自我感觉很奇怪。

0 投票
1 回答
787 浏览

javascript - 加密微妙解密参数未键入“CryptoKey”

我正在尝试使用预先生成的 SubtleCrypto 解密字符串

我没有得到解密的文本,而是得到了错误:无法在“SubtleCrypto”上执行“解密”:参数 2 不是“CryptoKey”类型。

我已经尝试研究该错误,但没有遇到与此类基本示例相关的任何内容。我究竟做错了什么?

0 投票
1 回答
323 浏览

javascript - JS SubtleCrypto RSA 加密和解密

所以我试图实现一些方法来加密然后解密一些数据。我对此没有任何经验,并且我尝试在网上关注一些有关如何解决此问题的帖子。

当我将加密的“你好”传递给解密函数时,我得到了这个:

当我使用来自我看到的 PKCS#8 帖子之一的加密消息时,解密功能可以正常工作,但在我生成自己的密钥时不能正常工作。

这是代码我做错了什么?

0 投票
1 回答
260 浏览

encryption - RSA SubtleCrypto 解密期间的 DOMException

我正在尝试使用SubtleCrypto加密字符串、存储加密字符串并再次解密该字符串,所有这些都使用生成的 RSA-OAEP 密钥对。

下面的代码在解密阶段会产生一个 DOMException,但是我似乎无法获得有关该错误的任何详细信息。我尝试使用“SHA-1”进行散列,但有同样的问题。

有什么提示吗?

0 投票
1 回答
203 浏览

javascript - WebCrypto 在 base64 中生成 ECDSA 签名

我想生成一个 ECDSA 签名并将其转换为 base64。

我可以使用 Nodejs 轻松完成此任务:

但是,当我尝试对 Javascript SubtleCrypto API 执行相同操作时,生成的签名在使用 Node Crypto 验证时无效。这是我的代码:

我错过了什么?

0 投票
1 回答
1129 浏览

javascript - 无法在 Crypto 中重现 SubtleCrypto

我有一些代码利用 SubtleCrypto 加密密钥并将其存储在数据库中。

对于另一个功能,我必须能够在 Node 12 中对其进行加密。没有 SubtleCrypto,我必须在 Crypto 中重新创建功能。

我得到相同大小的输出,但它似乎无法被 SubtleCrypto 解密,我试图找出我哪里出错了。

这是在浏览器上使用 SubtleCrypto 运行的代码:

如果没有 SubtleCrypto,在 Node 12 中,我不得不使用 Crypto 库。这是我当前的代码迭代。

包装的密钥在两种实现中具有相同的大小,但由 Node 生成的密钥不能在浏览器中展开。

我假设一些默认值是错误的还是什么?

0 投票
0 回答
43 浏览

javascript - 如何在 window.crypto.subtle 中使用 RSA 为多个收件人加密?

我需要使用 window.crypto.subtle.encrypt() 来加密多个收件人公钥。

这是我现在的代码:

participantKeys在这种情况下是一组公钥,目前这只是对数组中的第一个公钥进行加密。我需要加密数组中的所有公钥。

我尝试为 encrypt() 函数提供整个数组,但它对我不起作用。

有一个更好的方法吗?

0 投票
0 回答
65 浏览

javascript - 加密大数据

当我加密 190 字节或更少字节时,以下代码可以正常工作。但如果我尝试 191 或更多,则会引发异常。加密较大数据的正确方法是什么?

0 投票
0 回答
201 浏览

javascript - 如何在 CryptoJS 解密 AES SubtleCrypto [window.subtle.crypto]

我正在尝试从仅浏览器的 window.subtle.crypto 迁移到 CryptoJS,因此它在使用 Expo 的所有平台上普遍可用。

本质上:window.subtle.encrypt({name: AES-GCM}) -> CryptoJS.AES.decrypt

对于已加密的现有数据,CryptoJS 应该能够使用 window.subtle.generateKey 中的 AES 生成的密钥对其进行解密,因此 window.subtle.encrypt 的方法无法更改,其操作如下所述

我想解密window.subtle.encryptCryptoJS 的加密CryptoJS.AES.decrypt

所以为此,我编写了这个测试代码:

我已经看到 CryptoJS 只接受 WordArray,并且来自微妙加密的加密对象 ['encryptedObject'] 的输出是 ArrayBuffer [46 大小],我尝试通过将 ArrayBuffer 转换为 WordArrayCryptoJS.lib.WordArray.create(encryptedObject)但仍然没有运气。

任何帮助或指导表示赞赏,非常感谢!

0 投票
1 回答
49 浏览

rsa - 使用 RSA 在 JS 中加密消息并在 Python 中解密

我想使用 RSA 和 Javascript 中提供的 PEM 公钥加密消息,使用 SubtleCrypto window.crypto.subtle,然后在后端使用 Python (PyCryptodome) 对其进行解码。但是,我得到一个ValueError: Incorrect decryption.. 我不确定数据是否得到正确处理。这是我的代码:

JavaScript:

上面的代码所做的是转换公共 PEM 密钥,从中生成一个 CryptoKey 对象(使用 crypto.subtle.importKey),然后加密一个简单的消息“test14”。

Python后端: