问题标签 [pointycastle]

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 投票
0 回答
162 浏览

dart - RSA 私钥的 Dart 加密

我正在使用 dart pointycastle 库(基于 java bouncycastle)编写一个小库。

这些库不包含任何将私钥写入磁盘的方法。

所以我需要先用密码加密后将密钥写入磁盘。

我采取的方法是:

  • 将键的每个组件(模数、指数...)编码为 base64 字符串(从 bigint 转换)
  • 将每个 base 64 编码组件写入一个公共字符串
  • 使用 AES 加密公共字符串
  • base64 编码结果
  • 将 base 64 编码结果写入文件。

这是否被认为是存储私钥的安全方式。

我发现我用来将密码短语延长到 128 位的这段代码:

这足够吗?

0 投票
2 回答
207 浏览

dart - “AES 引擎未初始化”与 pointycastle SecureRandom()

我想生成一个具有动态长度位的随机 BigInt。我正在使用 pointycastle 包来获取 SecureRandom BigInt。

此行引发异常:

这是控制台中的完整错误:

我似乎无法在其他任何地方找到此错误消息的解决方案。我希望你们能帮助我。:D

0 投票
1 回答
388 浏览

flutter - 输入数据长度必须是 AES CTR 中密码块大小的倍数

我使用 Dart 的 encrypt 包加密了一个字符串。我加密的代码如下。

然后我用相同的包解码加密数据,我得到这个错误输入数据长度必须是密码块大小的倍数。经过一番研究,我了解到 encrypt 包无法破译 AES 加密算法。我了解到可以使用 Pointycastle 包解密加密的单词。下面的代码

当我解密用 pointycastle 加密的数据时,我得到这样的输出。

có¥ÄÐÒË.å$[~?q{.. 9

我加密的词是

你好

我使用的飞镖包

0 投票
0 回答
156 浏览

dart - 在 Dart 中使用 PointyCastle 进行 SHA-384/PSS 签名验证

我有一个公钥、一条消息和一个签名。SHA-384/PSS我想使用来自的签名者验证签名是否正确PointyCastle

我设法构建了一些东西,但是签名验证失败了,我想这是因为salt我不知道如何构建/创建它的参数。

我不确定将什么传递给ParametersWithSalt(keyParams, Uint8List()初始化签名者所需的第二个参数。

任何提示都非常感谢。

0 投票
0 回答
62 浏览

dart - 在 dart 中使用 AES/CFB8 加密字节

我正在寻找一种使用 AES/CFB8 算法加密和解密字节的方法。dart Encrypt 包不支持这种类型。有任何想法吗?

从我正在使用的协议的文档中。

从服务器接收到加密请求后,客户端将生成一个随机的 16 字节共享密钥,用于 AES/CFB8 流密码。然后它使用服务器的公钥(PKCS#1 v1.5 填充)对其进行加密,并以相同的方式加密在加密请求数据包中收到的验证令牌,然后在加密响应数据包中将两者发送到服务器。由于填充,加密响应数据包中的两个字节数组都是 128 字节长。这是客户端唯一一次使用服务器的公钥。

我已经完成了上面看到的所有步骤,并使用 Java 中的官方代码进行了测试。我只是不知道如何实现 AES/CFB8 流密码。

Pointy castle 不支持 AES/CFB8(仅 AES/CFB64)谢谢

0 投票
0 回答
72 浏览

flutter - RSA 解密不适用于 pointycastle(使用 jsencrypt 加密的数据)

我正在使用 pointycastle 解密数据(使用 RSA 私钥),数据使用 jsencrypt 加密,但我一直收到以下错误

E/flutter(31200):[错误:flutter/lib/ui/ui_dart_state.cc(209)]未处理的异常:无效参数(len):对于最大RSA密码输入块大小(256)来说太大:344

但我能够使用 jsencrypt 解密相同的加密文本而不会出现任何错误。

私钥:

-----开始 RSA 私有KEY----- MIIEpAIBAAKCAQEA2APd7VH7C8fci7SP6a7Zdcrfur5kvQOrCZMN8651RizhM0vc aaYIqzuyPTn3+gPvO+W3pT4uhrWvoJvB6HOYwiYms393XU2uV4RNHaaGgeoarK82 q9pODjp5H5WMwVfnBFrFL4C0nQsQr6h26klFohoTET9xSoxLwPwSb60oLRb1ZdM8 OI+jCyXtTgJrMTiF3h2tP+/urkAxgZLHXGNeFqC4G3P3HYQZFDcS0X+2G57MA7Ap HS1LRhur4LtHegyaWxonk4mGYLuZikxZZlqWelKW6lgO+ZwozzTc0jv8SZ/N51tM 2BoOZNbYZoGqjPsrJWH+1fRHLUhK2cLUD4QM5wIDAQABAoIBADPCjXFZtP1oKPUC 0X8NigbbE0vkZjASSm/zYCL1OR2VEGshsNFR2v7owXdBRiWOvsrL6vq50R0vOMOT vt1roX1X9esJzni5bd6DkZTau50ykqyxGTkJiK2JHk/OnlkProfRFjGhNeXxalCk 3cWaxAgpFkuKN6PExTwbSnGe/KL8zh3K3x/q3GKAfroioZj1FJkLrdDMO9cqJ0+T UFXZKrMODlF43TE4KM41Ive3L/rnZ9jcVnl7NfdVgpBEenYJnS/mLOsJGvGufnm6 aZ+oMvX5VUIXnT/ vQV4tVZtYHP4hnuCJH+xPVEuIETSwsH+nZ3UCYlIULsvcYnvR dlfProECgYEA77yWq6AbH22Bdy7V70oSIc2IWUVH7ufAfdOTctM5SjdoRcjDZpxu 6YKEBJpYFCJSmhl0fLi1oyLCkeZJfALRDX8+JJJbFOkrGO7ckmflG6CnbU6aaMpE wGOpTlV8W9iTSIDKwtaa3AOuOeo4yws3uL/F17EU64EWoqJD0RkkgIECgYEA5qtQ ty+f7gnCiPkYKN3jMVa39LnxuzPHsT0gtdDglC6hyvUBuMb20InJJFsp4yoXeEuB NFzw42ERdJbH7FazV7B3KWrFDO1lpD+Cy89jtWu/NdgkZU1BddiR/cVKDwPGK1Q5 hv2z17vl/RDpn/8Yd/lApNNevqZtoHx8zM1n2WcCgYAxrvXSz7WPR9SC7LPtiX5E fyH4zkDgJCtiaEywiVHgLadwfvDv/Q+HWUMe6RXD5nET+p6HkogiLPwB3KXyC2tj zrEER0iVBtWlrysLNHjoxtyr7JRXj0O8U2stDs5dAn9TkU10H6GsYx7iZcYrXkHI CgZocwyQ2gnk3pgLZ5iHAQKBgQCH7EdByqR5BfNF91JPMoDf3/PCF5fj8d0oCZcu zAiqCNh52enL0iI6PBb0f2utWm4+Cm/2RRYFRnucsgTYtTY0490z4KCAv5r3MB2I r4pXq0gfGGBJ+T4rjRRp70l2k4jAm37SlsjUxPn/J2ojR5RJjeyTs6HOwg8zVGfN 3vPk3QKBgQDfpEARuACkCr3OncM+xNINUikPtg4E+URjqjYMHbDUCatDda/Qegnh vvOx6Am5C4YD2qCqO3l7/ tbA13TiUGNNim1XI3RljmaOOhMkYtXfbZckxtEdvmlW ZkzWfmTtqYK3jQOf186JtAWZHKzlwmdur5Do4qkdjHuuTwKaFtcGnA== -----结束 RSA 私钥-----钥匙 - - -钥匙 - - -钥匙 - - -钥匙 - - -钥匙 - - -钥匙 - - -钥匙 - - -钥匙 - - -钥匙 - - -钥匙 - - -

加密数据:

r+xxX+XVxoaTzV1IzHiTj7FeSZB3UMSZu/ECoeAKlQOK3RWTWaewTeCOOXoaDCdhpgY4Z15uzQmo9FhNXFKCKwGy8gmyxe3w/emMWXeq2x0FmsGtjskNjHrUjo6etJBhOvqhqHOZAh/U5GZtmD81vHs+cad7r2C2XMCo7KOZeA/6JJ9tRJ31kh6X0yJCaxrFIumUoUNPyxHVWXjPAHh6vq4Ws5G09pjHfXnj+VO5GHSEHl8+O3wxiH/9Q3yZ5zWCghrCYuc9GwOXPw9oB2bNJTAodJCX20GnkaVyrtlNGFOLVxQeHOMp0szZdn//dLEz5hTuZHqi73bmp2Q4amr+zA==

0 投票
1 回答
101 浏览

flutter - Flutter 如何使用 AES GCM 256 算法使用 pointycastle 包进行加密和解密

我有两个函数用 AES-GCM 算法加密和解密数据,但使用加密包。我不认为它不好,它帮了我很多,但我想翻译它们,这样我就可以将pointycastle包用于我所有不同的加密和解密算法。

使用密码学包的功能是:

CipherDataHolder 只是一个保存值的类

///////////////////////////////////////// //////////////////

更新

///////////////////////////////////////// //////////////////

这是我到目前为止尝试翻译这些功能的方法

使用 pointycastle 包的功能是:

我仍然有一些疑问,我不知道我是否做对了。但是密码和解密现在正在工作,当我对数据进行加密时,我使用密码学包得到了类似的结果。

现在的主要问题是当我用pointycastle加密时,例如这个值:abc123|@#¢∞¬÷“”≠

密码学结果:abc123|@#¢∞¬÷“”≠

pointycastle 的结果:abc123|@#¢â¬÷âââ

我知道这可能是某种编码问题,但我看不出在哪里:(问题可能出在哪里或我做错了什么?

这些是辅助功能

0 投票
1 回答
63 浏览

flutter - 在应用程序 Flutter 中使用 Keccak256 进行字符串加密

我们正在制作一个应用程序来在多边形区块链中进行交易。

我们需要用 Kecca256 加密对一个字符串进行加密,这是 Poligon 接收到的。

有人可以帮我如何使用该协议加密字符串

0 投票
1 回答
56 浏览

dart - Dart (Flutter) 中使用 PKCS7 填充的 AES CBC 加密:当加密文本不需要填充时,pkcs7.dart 会抛出错误

我正在尝试使用 AES CBC 加密和 Python 中的 PKCS7 填充来加密一些文本,然后在 Dart (Flutter) 中对其进行解密。事实证明,package:pointycastle/paddings/pkcs7.dart当加密文本不需要填充时会引发错误。

这是示例。在这里,我们对一些需要在 Python 中填充的文本进行编码。

输出:

接下来,我们在 Dart 中对其进行解密。

输出:

所以,一切正常。

让我们对不需要填充的文本做同样的事情。

输出:

使用相同的代码在 Dart 中解密:

输出:

原来异常是由这个代码块抛出的package:pointycastle/paddings/pkcs7.dart:42:7

当解密工作(第一种情况)时,变量是:

当解密不起作用时(第二种情况),变量是:

pointycastle pkcs7 库有什么问题吗,还是我以错误的方式使用它?