.net - 在服务器应用程序中存储无法散列的密码

标签 .net encryption

我有一个 .NET 服务器应用程序,它必须存储无法散列的密码,因为我使用的某些 API 需要纯文本形式的密码。

这些密码也可以作为系统配置的一部分导出和导入到应用程序的另一个服务器实例中或用于备份目的。

除了导出数据的服务器之外,其他服务器上的应用程序实例肯定需要能够读取加密数据。

实现此目的的最安全方法是什么,既不会给用户带来太多麻烦,又不会因为丢失/不可用加密 key 而导致数据丢失的风险最小?


编辑

我正在寻找更多详细信息,例如:

  • 如何/在哪里存储 key
  • 生成 每次安装的唯一 key 和 存储它与应用程序范围 公钥

...不是关于使用哪种加密算法。


编辑二

我应该补充一点,这个应用程序将分发给客户,让他们在自己的服务器上运行。它是一个客户端/服务器应用程序。存储的密码仅供我们的应用程序用于传递到外部 API 方法。我们不会将它们用于任何其他用途。

主要关注的是何时将系统配置导出为 XML 以进行备份或移动到另一台机器。这是我们想要保护它们的地方,同时也让用户尽可能简单和灵活。

最佳答案

好吧,如果您只是在寻找一种强大的算法,那么您可能会比使用 TripleDES 做得更糟。它可能已经 32 岁了,但它仍然非常强壮。

如果您想要更新一点的东西,AES(最初是 Rijndael)也不错。

您可能想要比较每个的性能以查看最适合您的。

关于.net - 在服务器应用程序中存储无法散列的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1018284/

相关文章:

c# - 尝试显示 ListView 中的默认选定值

c# - 我可以在不将程序集保存到磁盘的情况下编译和执行 C# 表达式吗?

c# - 与序列化相比,使用 MarshalByRefObject 的开销有多大?

java - 使用配置动态创建Cipher : What parameters are necessary?

c# - 使用 2048 位 key 的 RSA 解密在 Windows Server 2012 r2 上为长度为 340 的加密文本提供了错误数据,而它在 Windows 8 上运行良好

c# - 当异步开启时,nlog 中的时间戳有何含义?

c# - MEF 最佳实践 : Where in the application I create container and where to call Compose()?

c - 对多个数据包段执行加密操作?

javascript - NodeJS,通过套接字控制台发送缓冲区后说它不是缓冲区

Python:解密凯撒密码