2013-08-23 2 views
1

로그인 할 때 암호를 해독합니다. 그러나 crypto.Compute는 db에 저장된 암호화된 암호와 같지 않을 때마다 새 암호를 생성하기 때문에 로그인에 실패했습니다. 내 코드는 다음과 같습니다. 컨트롤러simplecrypto 클래스를 사용하여 로그인시 암호 해독에 실패했습니다.

[HttpPost] 
    public ActionResult LogIn(Authentication log) 
    { 
      var crypto = new SimpleCrypto.PBKDF2(); 
      Login ULogin = new Login(); 

       if (ModelState.IsValid) 
        { 
         if 
          (ULogin.Validate(log.Email,crypto.Compute(log.Password))) 
      { 
       // FormsAuthentication.SetAuthCookie(log.Email, log.RememberMe); 
       return RedirectToAction("Index", "Home"); 



      } 
     } 
       else ModelState.AddModelError("", "Login failed.."); 



     return View(); 
    } 
+0

비밀 번호를 생성하고 비교하는 동안 동일한 값을 전달한 경우의 예를 보여줄 수 있습니까? – Nilesh

답변

1

소금 기능을 사용하고있는 것처럼 보이지 않습니다.

암호 해시를 생성 할 때 소금을 지정하지 않으면 라이브러리가 생성하여 사용합니다. 해시 된 암호로이 소금을 저장하고 해시에서 다시 사용하여 사용자의 유효성을 검사해야합니다. 이렇게하지 않으면 해시를 생성 할 때마다 새로운 소금이 생성되어 사용됩니다. 즉, 전체 암호 해시가 계산됩니다.

관련 문제