2017-01-13 20 views
1

좋아요. SHA 512에서 비밀번호를 확인하려고했으나 해시 체크와 같이 여전히 false를 반환하더라도 상관 없습니다.SHA 512 해시 및 확인

나는 간단한

public function isValidLogin($username, $password) { 
    $sql = $this->connect(); 
    $sql->real_escape_string($username); 
    $sql->real_escape_string($password); 

    $res = $sql->query("SELECT password FROM users WHERE name='".$username."'"); 

    if ($res->num_rows >= 1) { 
     while($row = $res->fetch_assoc()) { 
      if (password_verify(hash('sha512', $password), $row['password'])) { 
       return true; 
      } 
     } 
    } 

    return false; 
} 
+1

'암호'에 execly가 저장하는 항목은 무엇입니까? 다 잘 보입니다. http://sandbox.onlinephpfunctions.com/code/6be9bfccf7319332f6ca8faa5b6704f415d3d5e8 – Iwan

+0

데이터베이스 필드의 해시 저장에 충분한 길이가 있습니까? –

+0

글쎄 비밀 번호로 256자를 사용합니다 –

답변

2

대신 코드의 등록시에이 코드를 사용해보십시오 사용

$hashed = password_hash(hash('sha512', $password), PASSWORD_DEFAULT); 

를 등록하고 (로그인시) 확인하는 경우 해시를 생성.

$hashed = hash("sha512", $password);