有没有办法在不使用数据库的情况下在C#中安全地存储密码?我希望应用程序不必依赖数据库,但我不想以纯文本格式存储密码。例如,我目前做的事情如下:
public static string username = "george";
public static string password = "password";
我希望以最简单,最安全的方式存储它。该应用程序不需要用于任何其他目的的数据库,因此我只是试图避免引入数据库以仅存储单个信息。
答案 0 :(得分:1)
请参阅SecureString
,它可以在加密内存中的数据时访问各种字符串操作,以防止本地内存攻击。
如果您对密码的持久性感兴趣,通常会散列并然后保存密码,然后在尝试登录时在本地执行相同的散列,比较散列数据而不是原始文本。这样,拒绝了错误的密码,但正确的密码将散列为存储的值。
至于存储数据,请考虑将其存储为setting。
请注意,加密和“如何安全地存储密码”是一个很大的主题,你应该研究它。