NET的FIPS兼容密码加密

时间:2020-03-06 14:57:07  来源:igfitidea点击:

我正在VB.NET(3.5)应用程序中的WinForms上工作,该应用程序要求用户输入域管理员凭据。为了使用户更轻松,他们只需要输入一次用户名和密码,然后仅依靠我的应用程序保存这些凭据即可。我想将这些凭据与其他用户设置一起保存,但是出于安全原因,需要对密码进行加密。

加密和解密此密码的简便方法是什么?我希望加密方法与FIPS兼容。到目前为止,我尝试过的方法导致此异常:

System.InvalidOperationException: This
  implementation is not part of the
  Windows Platform FIPS validated
  cryptographic algorithms.

解决方案

查看符合FIPS的数据保护API(DPAPI)(据我所知;我们可以在此处查看评估结果)。

DPAPI在.NET 2.0和更高版本中通过System.Security.Cryptography.ProtectedData类公开。它使用用户的当前凭据作为加密密钥。在这里查看我更完整的答案。