将密码存储到sql的最佳方法

5 c# passwords sql-server-2005

在我目前的C#windows应用程序中,密码以纯文本形式存储,这显然不是很好.所以我只想知道加密密码并存储到SQL Server的最佳方法是什么.我已经读过使用hash + salt更好.但我觉得"EncryptByPassPhrase","DecryptByPassPhrase"在sql 2005中的新功能更好用,因为你正在处理SQL Server本身的所有内容,我想它使用的是三重DES.有人建议使用它是否好?

scw*_*ner 5

您是否需要访问原始密码,或者您只是尝试将输入的密码与数据库中的密码进行比较?

如果您需要访问原始密码,那么您将不得不使用加密算法而不是哈希算法.

如果您所做的只是在数据库中存储密码,以便以后可以根据已知的输入值进行检查,那么使用salt的哈希将起作用.

请记住,当客户端发送凭证以进行验证时,您不希望以明文形式发送密码!


Chr*_*ris 3

哈希和盐是可行的方法,因为不可能从中检索原始密码。如果您先加密然后解密密码,则明文密码是可检索的,因此它不是最好的。