C# 检索/设置密码和其他敏感数据的安全程序

C# 检索/设置密码和其他敏感数据的安全程序,c#,C#,我相信你们中的一些人已经编写了C#类,这些类必须设置/获取数据库的密码 我想敏感的细节不会是明文的。处理此类数据的建议程序是什么?检索到文本后是否加密?您是否将pws存储在加密的.xml文件中 谢谢通常的方法是将a存储在数据库中。通常的方法是将a存储在数据库中。 永远不要以纯文本形式存储密码,或者根本不存储密码。相反,您应该使用加密哈希函数(如SHA-2)存储(密码和salt)的哈希版本 因此,“将密码存储在加密的xml文件中”不是正确的方向-这意味着您将在某个时候解密该文件,因此可以通过存储哈

我相信你们中的一些人已经编写了C#类,这些类必须设置/获取数据库的密码

我想敏感的细节不会是明文的。处理此类数据的建议程序是什么?检索到文本后是否加密?您是否将pws存储在加密的.xml文件中


谢谢

通常的方法是将a存储在数据库中。

通常的方法是将a存储在数据库中。

  • 永远不要以纯文本形式存储密码,或者根本不存储密码。相反,您应该使用加密哈希函数(如SHA-2)存储(密码和salt)的哈希版本
  • 因此,“将密码存储在加密的xml文件中”不是正确的方向-这意味着您将在某个时候解密该文件,因此可以通过存储哈希访问您的所有用户密码(因此,如果您的系统受到破坏,攻击者将可以访问您的所有用户密码),您将无法获取用户的密码,即使您愿意
  • 因此,当一个人登录时,您可以通过对该人键入的密码进行散列来确认密码是否正确,并将其与您存储的散列进行比较-如果散列匹配,则密码是正确的
  • 如果您存储的密码哈希列表被破坏,请始终使用随机生成的密码,使攻击者无法使用该密码破解密码
  • 根据应用程序的性质,您应该强制执行某种规则
      • 永远不要以纯文本形式存储密码,或者根本不存储密码。相反,您应该使用加密哈希函数(如SHA-2)存储(密码和salt)的哈希版本
      • 因此,“将密码存储在加密的xml文件中”不是正确的方向-这意味着您将在某个时候解密该文件,因此可以通过存储哈希访问您的所有用户密码(因此,如果您的系统受到破坏,攻击者将可以访问您的所有用户密码),您将无法获取用户的密码,即使您愿意
      • 因此,当一个人登录时,您可以通过对该人键入的密码进行散列来确认密码是否正确,并将其与您存储的散列进行比较-如果散列匹配,则密码是正确的
      • 如果您存储的密码哈希列表被破坏,请始终使用随机生成的密码,使攻击者无法使用该密码破解密码
      • 根据应用程序的性质,您应该强制执行某种规则
      此外:如果您随机生成密码,而用户无法更改密码,请不要强制执行密码复杂性规则,因为它们实际上会减少可能值的数量:)此外:如果您随机生成密码,而用户无法更改密码,不要强制实施密码复杂性规则,因为它们实际上会减少可能值的数量:)