【发布时间】:2015-04-19 15:14:26
【问题描述】:
我目前正在开发一个 C# 中的表单应用程序,它有一个登录系统,用户必须输入他们的用户名和密码才能使用该程序。这些用户帐户存储在 XML 文件中,目前以纯文本形式存储(我只处于原型阶段)。我正在寻找一种方法来对密码(可能还有用户名)进行哈希处理,然后将它们存储在 XML 文件中。
我已经对此进行了一些研究,但是每次我进行另一次搜索时,我都会发现一种不同的加密方式。有些方法能够加密和解密字符串,而其他方法只能加密字符串。我正在努力寻找最适合我的情况的方法。
对于我的代码,我只需要对密码进行哈希处理。这将有助于使密码更加安全,以我的理解。我显然可以在登录时对密码进行哈希处理,然后进行比较,因此解密不是真正的问题。此外,该过程需要在任何计算机上运行。我已经看到一些只能在单机上运行的答案,如果可能的话,我正在寻找跨机器兼容的东西。另一件事是,散列的输出必须能够序列化为 XML 文件,而无需对用于写入 XML 文件的代码进行太多修改。目前我正在使用 XMLSerializer 和 StreamWriter 来写入 XML 文件。
同样,我已经看到了许多加密或散列密码的方法,但我对加密和散列内容相对较新,所以我不知道这样做的好方法。任何帮助将不胜感激,如果需要,我可以添加一些示例代码。
【问题讨论】:
-
关键字未加密。相反,散列
-
啊,谢谢,我会编辑问题。
-
我猜这里一定有某种形式的客户端/服务器通信,但你没有澄清这一点。如果没有(这只是一个本地应用程序登录),那么散列是没有意义的。如果密码正在通过网络,那么存储客户端哈希可能很好,但存储服务器端哈希(可能除了客户端哈希之外)是最佳实践方法。
-
在未来的版本中会有客户端/服务器通信。目前它只是一个客户端,所有内容都存储在本地。一旦服务器创建完成,所有登录信息都将在服务器端处理(包括存储)
-
How to hash a password 的可能重复项(注意这个答案stackoverflow.com/a/10402129/1185053)
标签: c# xml encryption password-encryption