问题标签 [sjcl]

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

javascript - 如何使用 sjcl 生成对称密钥

是否可以使用 sjcl 生成对称密钥?我想返回对称密钥,而不仅仅是调用sjcl.encrypt()函数。如果可能,请提供代码示例。

0 投票
1 回答
517 浏览

php - 使用 PHP AES CCM 模式解密的意外结果

我正在尝试使用 AES-256-CCM 重现加密操作,该操作当前在 Java 中使用 Bouncy Castle 提供程序执行。当使用 openssl 在 PHP 中尝试相同的操作时,我找不到一组产生相同输出的参数。

由于 AEAD 模式最近被添加到 PHP (7.1) 中,因此有关其工作原理的文档很少。

Java中“工作”加密的最小示例如下所示:

当我尝试使用不同的两种不同的库和语言重新生成它时,我已将 key 和 iv 设置为已知值。

当尝试使用 PHP 和 openssl 重新生成它时,我正在尝试使用以下代码

显然结果不匹配。为了寻找不正确的答案,我在 javascript 中使用 SJCL 创建了相同的操作。示例是:

Bouncy Castle 和 SJCL 库产生相同的输出,但我不知道有什么不同。

我已经尝试使用 PBKDF2 预处理密钥,如Encrypt in Javascript with SJCL 中的建议,并在 PHP中解密但没有成功。我试过 SHA256'ing 没有成功。

为什么 php/openssl 中的输出与 Bouncy Castle 和 SJCL 不同?

0 投票
0 回答
359 浏览

javascript - 使用 ElGamal 签名或使用私钥加密

我正在使用 SJCL js 库:如何使用 elGamal 算法来证明用户拥有基于公钥的私钥?我还使用了 ECCDH 部分,所以我不能只使用 ECDSA。

我希望每个人都能够通过使用他/她的公钥解密消息来验证拥有该私钥的用户是否确实编写了该消息,并确实提出了请求。

请求消息 -> 使用私钥加密 -> 发送 -> 每个人都可以使用他的公钥解密消息,证明他确实提出了请求

我对密码学很陌生,我了解到在非对称中您可以使用私钥来加密文件,但我似乎在 SJCL 上找不到这个工具。

我在下面附上了我尝试的屏幕截图,请让我知道我做错了什么。谢谢![在此处输入图像描述] 1

0 投票
0 回答
588 浏览

java - 与 sjcl 兼容的 java 解密抛出错误 - CCM 中的 mac 检查失败

我正在尝试在 java 上解密从客户端收到的加密消息,该消息使用 sjcl 进行加密我使用带默认参数的 sjcl

这是我到目前为止所拥有的

通过调用此方法,我得到了下一个异常

任何人都可以帮助我吗?

0 投票
1 回答
769 浏览

encryption - 用 sjcl.js 进行 aes gcm 解密的正确方法是什么?

我正在尝试在 aes 算法(gcm 模式)中使用 sjcl.js 加密库解密密码内容。这是我的代码:

key并且cipherText已经在 python (aes-gcm, 128bitkey) 中加密。有人知道如何解密吗?有没有 sjcl.js 的替代品和文档?谢谢!

注意:我已经使用 NodeJS Crypto lib 对其进行了解密,但 Crypto lib 与浏览器不兼容。浏览它会产生一个繁重的脚本,所以我正在寻找与浏览器兼容的轻量级 javascript lib。这是我使用 NodeJs 的代码:

0 投票
1 回答
580 浏览

javascript - 如何使用 sjcl.hash.sha256.hash 对文件内容执行 sha256 哈希?

我正在尝试使用 javascript 对文件内容执行 SHA256 哈希。

我使用以下函数获取文件

哈希函数是

但是当我选择一个二进制文件时它会产生错误的哈希数据

我只能使用文本文件生成实际哈希并更改fileReader.readAsArrayBuffer(this.files[0]); -------> fileReader.readAsText(this.files[0]);

有人可以帮我解决问题吗

0 投票
2 回答
3708 浏览

angular - 在 Angular 7 中使用 SJCL 时无法解析 './node_modules/sjcl' 中的 'crypto'

我想在客户端加密数据,所以我找到了 SJCL npm。

浏览了他们的文档。但是,SJCL 贡献者提供的文档较少,无法在 Angular 中实现

我尝试了以下方法。

我安装了包

  1. npm install --save sjcl

    之后我也尝试安装类型定义

  2. npm install --save sjcl @types/sjcl

这是我的 package.json

我也这样做了

在我的一个组件中。

此外,我已经通过这个链接 Using SJCL library in Angular2

当我运行角度应用程序时,我得到

可能是我的笔记不是那么完美,或者我定义错误。如何在没有此警告的情况下使用 SJCL 加密数据?

0 投票
1 回答
106 浏览

javascript - 将纯 Nativescript 5.x 项目迁移到 Nativescript 6 - JS ERROR NOT READY: generator is not seeded

将纯 Nativescript 5.x 项目迁移到 Nativescript 6 使用 nativescript-nodeify (0.8.0) 、 sjcl (1.0.8) 和 uuid (3.3.3)
在 ios 或 android 上执行时,sjcl.random.randomWords(PBKDF2_SALT_SIZE) 是抛出错误 - JS 错误未准备好:生成器未播种

尝试了不同的方法在 webpack 中配置加密。仍然无法解决此错误!在这方面的任何帮助将不胜感激!!!

0 投票
0 回答
172 浏览

android - 如何在 Android 中使用 elGamal 加密密钥?

我在 node.js 上使用 SJCL.js 创建了以下密钥对

我知道我也需要在 Android 中以某种方式使用 elGamal。我想实现一个聊天功能,每个要发送的文本聊天都将使用接收者的公钥进行加密。

如何使用这些 elGamal 公钥在 Android 中执行加密(以及分别解密的私钥)?到目前为止,我刚刚找到了对 RSA 密钥的支持。

0 投票
1 回答
294 浏览

kotlin - 如何反序列化 Android 中的公共/私有 P-384 密钥?

我使用 P-384 曲线在 node.js 中使用 sjcl.js 创建了一个公钥/私钥集。它是这样构造的:

在 Javascript 中,这可用于加密字符串“hello world”,如下所示:

这导致具有相关参数的加密对象:

同样,在 Javascript 中,可以像这样对密钥进行反序列化:在 javascript 中,可以像这样对密钥进行反序列化

并像这样用来解密

直到这里,一切都很好。但是,我现在需要能够使用 Kotlin 在 Android 中执行相同的操作。

有以下错误:

Caused by: java.lang.IllegalArgumentException: Key length not 128/192/256 bits.

如何在 Android 中正确反序列化此密钥并使其正常工作?