问题标签 [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.
dart - RSA 私钥的 Dart 加密
我正在使用 dart pointycastle 库(基于 java bouncycastle)编写一个小库。
这些库不包含任何将私钥写入磁盘的方法。
所以我需要先用密码加密后将密钥写入磁盘。
我采取的方法是:
- 将键的每个组件(模数、指数...)编码为 base64 字符串(从 bigint 转换)
- 将每个 base 64 编码组件写入一个公共字符串
- 使用 AES 加密公共字符串
- base64 编码结果
- 将 base 64 编码结果写入文件。
这是否被认为是存储私钥的安全方式。
我发现我用来将密码短语延长到 128 位的这段代码:
这足够吗?
dart - “AES 引擎未初始化”与 pointycastle SecureRandom()
我想生成一个具有动态长度位的随机 BigInt。我正在使用 pointycastle 包来获取 SecureRandom BigInt。
此行引发异常:
这是控制台中的完整错误:
我似乎无法在其他任何地方找到此错误消息的解决方案。我希望你们能帮助我。:D
flutter - 输入数据长度必须是 AES CTR 中密码块大小的倍数
我使用 Dart 的 encrypt 包加密了一个字符串。我加密的代码如下。
然后我用相同的包解码加密数据,我得到这个错误输入数据长度必须是密码块大小的倍数。经过一番研究,我了解到 encrypt 包无法破译 AES 加密算法。我了解到可以使用 Pointycastle 包解密加密的单词。下面的代码
当我解密用 pointycastle 加密的数据时,我得到这样的输出。
có¥ÄÐÒË.å$[~?q{.. 9
我加密的词是
你好
我使用的飞镖包
dart - 在 Dart 中使用 PointyCastle 进行 SHA-384/PSS 签名验证
我有一个公钥、一条消息和一个签名。SHA-384/PSS
我想使用来自的签名者验证签名是否正确PointyCastle
。
我设法构建了一些东西,但是签名验证失败了,我想这是因为salt
我不知道如何构建/创建它的参数。
我不确定将什么传递给ParametersWithSalt(keyParams, Uint8List()
初始化签名者所需的第二个参数。
任何提示都非常感谢。
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)谢谢
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==
flutter - Flutter 如何使用 AES GCM 256 算法使用 pointycastle 包进行加密和解密
我有两个函数用 AES-GCM 算法加密和解密数据,但使用加密包。我不认为它不好,它帮了我很多,但我想翻译它们,这样我就可以将pointycastle包用于我所有不同的加密和解密算法。
使用密码学包的功能是:
CipherDataHolder 只是一个保存值的类
///////////////////////////////////////// //////////////////
更新
///////////////////////////////////////// //////////////////
这是我到目前为止尝试翻译这些功能的方法
使用 pointycastle 包的功能是:
我仍然有一些疑问,我不知道我是否做对了。但是密码和解密现在正在工作,当我对数据进行加密时,我使用密码学包得到了类似的结果。
现在的主要问题是当我用pointycastle加密时,例如这个值:abc123|@#¢∞¬÷“”≠
密码学结果:abc123|@#¢∞¬÷“”≠
pointycastle 的结果:abc123|@#¢â¬÷âââ
我知道这可能是某种编码问题,但我看不出在哪里:(问题可能出在哪里或我做错了什么?
这些是辅助功能
flutter - 在应用程序 Flutter 中使用 Keccak256 进行字符串加密
我们正在制作一个应用程序来在多边形区块链中进行交易。
我们需要用 Kecca256 加密对一个字符串进行加密,这是 Poligon 接收到的。
有人可以帮我如何使用该协议加密字符串
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 库有什么问题吗,还是我以错误的方式使用它?