【问题标题】:How to authencticate the encrypt password with input password value?如何使用输入密码值验证加密密码?
【发布时间】:2014-06-04 06:51:56
【问题描述】:

这里我们从移动应用程序调用 webapi 服务来验证数据库中的用户 ID 和加密密码。 所以要进行身份验证,我会加密输入密码并与数据库密码进行比较?

另一个问题:我在做什么正确吗? 或者它是解密数据库密码值并检查输入值的更好方法。如果第二种方法更好,我该怎么做?

下面是我的代码:

  using (LoginServiceEntities context = new LoginServiceEntities())
        {
            var crypto = new SimpleCrypto.PBKDF2();
            var encrypass = crypto.Compute(Password);
            var user = (from u in context.user_master
                        where String.Compare(u.UserID, UserID, StringComparison.OrdinalIgnoreCase) == 0
                              && u.Password== encrypass
                        select u).FirstOrDefault();

            return user != null;
    }

【问题讨论】:

标签: encryption asp.net-web-api


【解决方案1】:

不应解密数据库中的密码。 你在做什么是正确的。只需将数据库中的加密密码与加密输入进行比较

【讨论】:

  • 好的,当我加密密码比这里加密值和 db 加密值不同我更新我的代码请检查一次
  • 我使用下面的代码将值存储在 db 中(var crypto = new SimpleCrypto.PBKDF2(); var encrypass = crypto.Compute(user.Password); hash salt to how to encrypt input value using哈希+盐
  • 你应该使用相同的方法来加密它们,为什么要使用不同的加密方法?
  • 是的,我的疑问是如何做到这一点?你能帮帮我吗?
  • 您正在使用 var cipherText = Encript.Encrypt(Password);加密输入密码,所以只需使用相同的方法 Encript.Encrypt(passwordToSaveToDb) 将密码保存到数据库。下次再比对密码还是一样。
猜你喜欢
  • 2014-08-09
  • 2019-12-09
  • 2013-03-21
  • 1970-01-01
  • 1970-01-01
  • 2014-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多