【问题标题】:What is the most secure way of encrypting/decrypting data? [closed]加密/解密数据最安全的方法是什么? [关闭]
【发布时间】:2011-12-05 15:44:49
【问题描述】:

现在我知道这是一个非常开放的问题,例如“一根绳子有多长”,但我是这个游戏的新手。

根据我的基本理解(在深入研究该主题之前),我相信 AES 256 位加密非常安全。

我的需要是使用 .Net 使用最安全的加密方式生成私钥和公钥。

现在我从专家的角度知道这可能是一个幼稚的问题,但请帮助我扩展我的知识并提出最佳方法、算法以及在此类项目中需要考虑的任何其他内容。

非常感谢。

【问题讨论】:

  • 说白了:只要去做,就不安全。正如 Bruce Schneier 所写:“密码很难。密码学很难。密码是最容易的部分。”了解该主题并使用高质量的图书馆。 您的代码将是薄弱环节,而不是密码。
  • 您的问题表明对加密缺乏了解。这意味着你不会正确地实现它,它被破坏。我一直都弄错了加密货币,而且我已经这样做了 。我建议您在尝试干预此类事情之前至少阅读一些有关基本密码原理的文献。
  • @KerrekSB 你是说.Net 库msdn.microsoft.com/en-us/library/… 这样的东西很弱吗?
  • @Jon:不,这些库几乎肯定没问题。我要说的是,只要你没有牢牢把握这个主题,你很可能会设计出一个具有比库中的任何弱点更容易利用的缺陷的系统。 (由于这个事实本身就是密码学的第一课,我很想得出结论,你还没有达到那个水平。)
  • @KerrekSB - 我想起了克格勃密码破解者的古老格言:“破解手指比破解密码更容易”。

标签: c# .net security encryption .net-4.0


【解决方案1】:

可能没有这样的东西可用。您的加密级别应与与数据关联的线程成比例。请记住,通常人类创造的任何东西都可以被人类破坏。

如果您想使用一对密钥来加密/解密数据,您很可能走上了非对称加密的道路 - google it。从 .NET 的角度来看,您可以查看 RSA algorithm 的实现,对于 1024 2048 位或更大的密钥大小,它是 considered to be secure

【讨论】:

  • 在那种情况下 RSA 比 SHA512 更安全?
  • SHA512 是一种 散列 算法,而不是加密(意味着 SHA512 只是一种方式)。您将无法从哈希中恢复对象,因为此操作不可逆。您可能可以将 AES 与 RSA 进行比较,但这取决于您的目标、数据和流程
  • 无法回答您的问题。它们都是安全的,具体取决于您如何使用它们以及您加密的数据类型将决定哪个数据更安全。您可以解密的任何数据都意味着必须将加密和解密过程存储在同一位置。这一事实意味着任何有权访问该过程的人都可以解密您的信息。您认为 SHA512 是一种加密算法的事实证明您应该做一些额外的研究。
  • @oleksii:如果 SHA512 只是一种方式,那么该网站是如何运作的?可用于加解密:sha2decrypt.com
  • @ibiza 很好发现,这确实是蛮力,正如它在关于页面中所说的那样 - “SHA2Decrypt 为包含 2436860 个 SHA-2 哈希的数据库提供了一个 Web 界面......”。因此他们采用任何字符串,计算哈希并让用户快速访问这两个字符串。请看一下已经可用的字符串数量 - 2436860 这没什么,因为我有一个只有 100 个字符的字符串,这个 db 有我的字符串的可能性几乎为零,或者用数学的话来说:1 / (256 (说出所有可能的 ASCII 符号)^ 100(100 个字符的字符串中的可能组合))
【解决方案2】:

您不需要加密来生成公钥/私钥。这是一个数学运算。然后将密钥用于加密。

快速概述它们是如何链接在一起的

  1. 密钥已生成。
  2. 然后使用密钥在各方之间安全地交换“密码”。
  3. “密码”随后用于加密双方之间的进一步通信。

第 2 部分将使用散列和签名等方案来确保通信是真实的和未被篡改的。 PKI 非常慢,因此尽管您可以在实践中使用它来保护通信,但它通常只在开始时使用,然后使用更快的方案,例如 AES。

其中很多内容应该在 Wikipedia 上,还可以查看 Bruce Schneier 的作品。

【讨论】:

    【解决方案3】:

    AES 是一种对称算法 - 意味着一个密钥...如果您想要密钥对查找 RSA 库...。快速谷歌搜索提供以下链接:

    http://www.codeproject.com/KB/security/RSACryptoPad.aspx

    【讨论】:

      猜你喜欢
      • 2022-01-25
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多