C# 我如何进行加密?

标签 c# encryption cryptography public-key-encryption encryption-asymmetric

我不要求提供代码教程,我正在尝试进行研究,但我想确保我问的是正确的问题。

  • 我可以在 .NET 中开箱即用的最佳加密形式是什么?
  • 公钥/私钥,我应该在哪里安全地存储这些东西?
  • 我应该使用什么工具才能正确执行此操作?

我从 AESCryptoServiceProvider 开始,加密了我传入的字符串,我很高兴。经过测试,如果我调用它两次,它会得出相同的值。然后意识到我没有提供任何形式的 key ,所以第二次运行该应用程序产生了不同的结果。所以我开始阅读,看到 RSA 公钥/私钥等。我只是想确保我正在阅读的内容是正确的。那里有大量的例子,很少有人提到你把这些 key 放在哪里或者你从哪里得到它们。

最佳答案

System.Security.Cryptography 中有很多密码学函数。

它们有散列、密码、流等等。

RSA 提供商是一个很好的提供商。关于安全地存储常量。我只能建议将它们加密存储在解决方案中。 您不应该能够从源代码中读取它们,因此在构建程序集后需要某种安全措施。也许是迷惑,也许是别的什么。 关于 key 的生成,不要使用你自己的系统,或者我猜的任何开发系统。

编辑:
要生成 key ,您最好使用任一用户输入,例如,只需创建一个小应用程序,计算输入一段特定文本所需的时间,每个字母。

或者使用 HRNG/TRNG,硬件随机数生成器(使用来自现实世界的输入,通过传感器检索)。或者True Random Number Generator,基本上也是HRNG,但多是其他形式的输入,很高级。
RANDOM.ORG应该能帮到你。

如果不是那么重要,只需用头敲键盘,看看结果:)。

关于C# 我如何进行加密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5290530/

相关文章:

javascript - 如何将 id-aes256-GCM 与 Node.JS 加密一起使用? "TypeError: DecipherFinal fail"

c# - 嵌套聚合过滤

c# - 通过 C# 应用程序接收电子邮件和下载附件

c# - 无法加载文件或程序集 Microsoft.Win32.Primitives,版本 = 4.0.0.0

nginx - 让我们加密未经授权的 403 禁止

c# - 从代码创建 Dot Net Nuke 用户

python - 带有 python 加密的 InvalidSignature

c# - WCF TCP比HTTP快多少

security - 为什么建议公开加密算法?

c# - 非对称TCP加密C#