我正面临困境。
我在客户端服务器应用程序上使用Asp.Net身份存储用户帐户,角色和密码。只是为了避免样板,不要重新发明轮子。
但是,我想验证一个远程客户端。我不想通过电线传输密码,所以我也想对其进行编码/散列并检索访问令牌。
Asp.Net中的哈希机制使用随机盐,包括在AspNetUsers表的“ PasswordHash”字段中,以及加密算法,盐,版本等。
关于如何安全验证客户端密码是否有建议?也许是在服务器上提取盐以在客户端等上发送/重新编码密码?
服务器:已保存的哈希
客户端:用于哈希/加密并发送到服务器的密码
需要:安全验证密码
答案 0 :(得分:1)
在身份验证期间,密码验证应在服务器端进行。使用存储的散列验证生成的散列。
要验证密码,我将尝试在服务器上执行以下步骤。
1)通过 Https / SSL
从客户端向服务器发送密码2)从数据库中检索用户的盐和哈希值。
3)根据用户密码生成哈希并存储盐。
4)比较数据库中的哈希与生成的哈希。