我在 asp.net c# 中创建了一个自定义注册页面并加密了密码并将其保存在 SQL express 数据库中。我想在用户登录时解密该密码。我在登录控制中使用构建?
您能指导我如何解密该密码吗?在登录控制背后的代码中,我使用了带有 where 子句的选择查询,该子句与以加密形式存储在数据库中的用户密码相匹配。
您应该匹配加密的密码,而不是解密所有密码。您应该暂时加密用户插入的密码并查询数据库以搜索与加密密码的对应关系。
@trippino 建议的替代方法是将密码的哈希值存储在数据库中,而不是加密版本。当用户登录时,您创建用户密码的哈希值并将其与您存储在数据库中的哈希值进行比较。
这通常更安全,因为在任何情况下(除了初始哈希阶段)您都在处理实际用户的密码。
完成这项工作的最简单方法是加密输入的密码并将其与已保存的密码匹配。例如,您在注册时和数据库中输入了密码“ test ”,它被保存为“ 193ed271e1eytjgwedguwegdkgwke ”,现在当用户在登录时再次输入测试时,它具有相同的功能,它会再次生成相同的加密代码,如果不是同一个密码,那一定不是同一个密码!
您不解密密码。您只需使用与存储密码相同的算法来匹配加密密码。