问题标签 [rsa]
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.
apache-flex - AS3Crypto RSA 签名
我在将 RSA 返回的值与 actionscript as3crypto 库中的 Base64 SHA1 哈希值与 c# 中返回的结果相匹配时遇到了一些麻烦。
我将解码为字节数组的 Base64 哈希传递给 as3crypto 中提供的 sign() 函数,并对结果进行 base64 编码。但是,此结果永远不会与执行相同任务的 ac# 函数返回的结果相匹配。即使函数在字节数组级别工作,该函数接受并返回十六进制是否重要?
请查看我下面的签名功能以检查我没有遗漏任何内容!
有人对 AS3Crypto 库有很多经验吗?
任何帮助都会很棒!!!
谢谢,
乔恩
c# - RSA 加密,长度变差
调用以下函数时:
我现在收到错误:长度错误。
使用较小的字符串它可以工作,任何问题可能是我传递的字符串的任何想法都在 200 个字符以下。
c# - C# RSA 解密问题
我有这个函数用来解密在我的开发机器上运行良好的值。但是当在另一台服务器上运行时 - 给出了这个确切的错误消息:
该系统找不到指定的文件。
这是功能:
更新
伙计们,我最初走这条路是因为经过数小时的搜索后,我在 stackoverflow 上得到了答案,这种加密/解密方法完全适用于字符串,无需导入/导出密钥。
所以....现在我缺少一个密钥文件?这怎么可能我什至没有创建密钥文件。
c# - 在 .net 框架中使用先前生成的 RSA 公钥/私钥
我有一个预先存在的用于 RSA 加密的公钥/私钥对,我需要在 .net 中使用它。我可以在网上找到的所有示例都演示了如何生成新的私有/公共对然后加密/解密。IE。像这样的东西:
可以看出,没有指定预先存在的公钥/私钥的途径。
有人知道如何完成我想要做的事情吗?任何帮助将非常感激。
干杯纳伦
encryption - Openssl pkeyutl 期望什么格式签名?
我正在尝试验证通过使用 SHA-1 散列并使用 RSA 私钥加密散列来签名的文件。
显然我正在使用 RSA 公钥进行验证。密钥采用 DER 格式。
签名验证使用 Java 的 Signature 类可以正常工作。
我正在尝试的 openssl 命令(和结果)是:
我在 openssl 配置文件中看不到任何适用的内容,因此我认为该警告并不重要。
savedDigitalSignature.txt 文件包含签名字节。
我的理论是,openssl 正在寻找某种特定文件格式的数字签名,但我在文档中没有找到任何表明应该是什么的内容。
想法?
encryption - 如何将 AES 初始化向量传达给客户端以进行混合密码系统
我需要为客户端-服务器通信实现安全性。我已经实现了以下混合密码系统
为了在混合密码系统中加密发给 Alice 的消息,Bob 执行以下操作:
- 获得 Alice 的公钥。
- 为数据封装方案生成一个新的对称密钥。
- 使用刚刚生成的对称密钥在数据封装方案下对消息进行加密。
- 在密钥封装方案下,使用 Alice 的公钥加密对称密钥。
- 将这两种加密都发送给 Alice。
为了解密这个混合密文,Alice 执行以下操作:
- 使用她的私钥解密包含在密钥封装段中的对称密钥。
- 使用此对称密钥来解密数据封装段中包含的消息。
我将 RSA 用于公钥密码系统,将 AES 用于对称密钥密码系统。一切正常,但我不确定如何处理 AES 初始化向量。目前,我正在连接 AES 密钥和初始化向量,用公钥对其进行加密并将其发送到服务器。
我只是想就这种方法获得一些意见。其他通信协议 SSL 等如何解决此问题。
谢谢。
c# - 没有填充的 C# RSA
我正忙于移植看起来像这样的 Java 代码
到 C#,但似乎 RSACryptoServiceProvider 会强制您使用 OEAP 或 PKCS1 填充。我知道没有填充是不安全的,但在这种情况下,我使用的是闭源客户端,所以我对此无能为力。有没有办法解决这个填充问题?
encryption - 我应该使用哪种加密方法?
我需要一个系统来交换非常机密的数据(源代码是商业机密)。我将使用 Crypto++,所以实际上我可以使用所有加密算法,尽管我更喜欢使用行业标准。
目前我正在考虑这些方法:
- 让服务器生成 2048/4096 位 RSA 密钥,将公钥发送给客户端,让客户端加密数据,然后将其发送给服务器。
- 使用像 Diffie-Hellman(正确的是 Diffie-Hellman-Merkle)这样的密钥交换方法来交换 AES-256 密钥。
- 启动 TLS 连接并直接告诉服务器 AES 密钥。
你认为我应该使用哪种方法?只要合理,我不关心性能;安全才是最重要的。如果都没有,请建议另一种方法。
PS:我可能会在对称算法上使用链接,例如 AES-Twofish-Serpent。
编辑:任何推荐的软件都必须在不会限制专有使用的许可证中。LGPL 尽可能严格。这排除了 GPL。
cryptography - 基于密钥大小的 RSA 性能
一个不依赖于实现的理论问题,1024 位与 4096 位 RSA 的性能下降了多少?
谢谢
java - Java:为什么 512 位 RSA KeyPairGenerator 返回 65 字节的密钥?
这可能是一个新手问题。我正在使用 Java 生成密钥对:
现在我一直认为 privateKey.getModulus() 和 privateKey.getPrivateExponent() 形成“私钥”,并且它们与传递给密钥生成器的密钥大小(512 位)一样大。
但是,privateKey.getPrivateExponent().toByteArray() 有时返回 64 字节(如我所料),有时返回 65 字节数组。
为什么有时是 65 个字节?我在这里错过了什么吗?