【问题标题】:Use preexisting RSA SSH keys to decrypt a text in C#使用预先存在的 RSA SSH 密钥解密 C# 中的文本
【发布时间】:2013-04-11 13:10:51
【问题描述】:

我有一对由 Linux 计算机中的“ssh-keygen”命令生成的 RSA 公钥/私钥。这台 Linux 计算机中有一个 Ruby 应用程序,它使用这个公钥加密一个字符串,我想用这个私钥解密 Windows C#/.Net 应用程序中的字符串。我看了一下 Bouncy Castle 库,但没有成功。任何示例或提示都会有所帮助。谢谢!

【问题讨论】:

  • SSH 中的 RSA 密钥仅用于对数据进行签名以验证身份,而不用于加密会话数据甚至交换会话密钥。使用它们来加密数据并不是最佳实践。

标签: c# encryption rsa bouncycastle openssh


【解决方案1】:

有理由使用 ssh 密钥吗?

任何 RSA 密钥都足够了。您需要提取 RSA 密钥来加密任何内容。如果该密钥不是 RSA,则您无法加密任何内容,因为 DSA 是仅签名算法。有公钥的 RFC:http://www.ietf.org/rfc/rfc4716.txt 这不是您所需要的。但可能会帮助您了解如何提取每个部分。它应该只是 base64 编码的二进制块。

你可以试试 PuTTY 源码http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html keygen 可以生成和转换这些密钥。所以,如果你找到它提取 RSA 密钥的地方。然后使用任何加密库使用密钥和数据计算 RSA。使用正确的键,您将获得输入数据 + 填充。取决于 ruby​​ 程序使用的是公钥还是私钥。希望对您有所帮助。

【讨论】:

  • 因为我更喜欢使用开放标准。我的 Ruby 代码 (pastebin.com/1djhPRxN) 可以在两种方式(加密和解密)中完美运行。我想用我的 C#/.Net 代码获得相同的结果。
猜你喜欢
  • 1970-01-01
  • 2014-10-01
  • 1970-01-01
  • 2020-02-17
  • 1970-01-01
  • 1970-01-01
  • 2012-07-16
  • 2014-11-07
  • 2019-02-15
相关资源
最近更新 更多