1

我意识到这个问题可能是主观的,但我在这方面还很陌生,虽然关于这个主题有很多。我还不能对此形成一个好的意见,我认为这可能部分是因为我是新手,我只能从我的项目的角度来思考,这并没有什么不寻常的。

所以我在我的环境中问什么是身份验证的最佳选择?什么方法是最好的会话?饼干?还有什么?另外,您如何安全地将密码保存在表格中?我研究了数据类型,但这似乎产生了任何帮助。表格和/或列有什么特别的地方吗?最终,我很想在我的网站 {ie Facebook、Google、OpenID} 中添加其他身份验证方法,但我认为我需要先了解这一点。

我的环境是 ASP.NET,代码在 VB 中。我正在使用 MSSQL 2005(但如果需要可以访问 2008)。

谢谢乔什

4

1 回答 1

2

我不熟悉 ASP,所以我无法回答您如何最好地在整个会话期间进行通信和保留凭据。听起来像其他人建议的那样,使用内置的会员系统是最安全的方法。但是,我完全同情您希望自己做事并了解他们如何在幕后工作的愿望。如果您确实想自己解决这个问题,我可以谈谈数据库方面的事情。

如果可能的话,永远不要将实际密码存储在任何地方。您应该只存储从密码生成的不可逆加密值(使用哈希加密算法,例如SHA512Managed)。要对用户进行身份验证,而不是解密存储的密码并比较两个纯文本密码,您希望加密输入的密码,然后比较两个加密值。如果您存储实际密码,即使使用可逆加密算法对其进行加密,也存在很大的安全风险。

此外,如果您使用的加密算法允许您指定种子值,则应使用算法根据原始密码生成种子值。您不想为每个密码使用相同的加密种子值。

此外,大多数加密方法都设计得很快,因此它们可以用于通信流。但是,如果它们很快,这意味着有人可以更快地暴力破解它们。因此,使加密更安全的最佳方法是使它们尽可能慢。这通常是通过在循环中一遍又一遍地重新加密加密值固定次数来实现的。

于 2013-01-17T22:05:35.977 回答