【发布时间】:2016-06-10 06:42:43
【问题描述】:
我在我的 .NET (C#) 客户端中使用 CryptSharp Library 使用随机生成的盐 (Blowfish) 对用户密码进行哈希处理。
然后我继续将散列密码发送到我的远程服务器,并将其存储在 MySQL 数据库中。
当我尝试使用相同的纯文本密码登录时,发送的内容与存储在数据库中的内容之间存在哈希不匹配。 (很可能是因为盐每次都在变化)
我不想向我的 PHP 端发送未加密的纯文本密码,如何在不使用静态盐的情况下实现此目的?
散列(C#):
string passHash = Crypter.Blowfish.Crypt(Password.Text, Crypter.Blowfish.GenerateSalt());
我不希望在注册时创建一个新列来存储客户的盐,但如果我必须这样做。
【问题讨论】:
-
您为什么使用 Blowfish?还有其他更直接的方法可以直接从 .NET 框架生成散列。那么,您使用 Blowfish 有什么具体原因吗?
-
如果不是 Bcrypt(Blowfish),你会推荐什么?
-
使用 .NET 框架中的 SHA1Managed,请参阅下面的答案