반응형
$bcrypt = new Bcrypt(12);
$pass = $_POST['password']; //register password field
$hash= $bcrypt->hash($pass);
// then inserts $hash into database with users registered email (I've checked my mysql database and it indeed has an hashed item
그런 다음 이메일 및 비밀번호 필드로 구성된 로그인 페이지가 있습니다. 내 생각은 이메일 주소가 내 데이터베이스에서 고유하다는 것입니다. 이를 염두에두고 먼저 사용자의 이메일 주소를 확인하는 스크립트를 만든 다음 기존 이메일 주소가있는 경우이 주소로 해시 비밀번호를 확인합니다.
$bcrypt = new Bcrypt(12);
$email = $_POST['email']; //from login email field
$pass_l = $_POST['password']; // from login password field
$hash_1= $bcrypt->hash($pass_1);
$chk_email= $dbh->prepare("SELECT password FROM table WHERE email = ?");
$chk_email -> execute(array($email));
while($row = $chk_email->fetch(PDO::FETCH_ASSOC)){
$chk_pass = $row['password']; //inside a while loop to get the password
$pass_isGood = $bcrypt->verify($hash_1, $chk_pass);
var_dump($pass_isGood); // I'm getting false
}
내가 뭘 잘못하고 있는지 잘 모르겠지만 사실대로해야합니다. 그리고 내 테이블 필드를 text
또는 varchar (256)
로 설정했습니다.
해결 방법
두 번째 해시 된 암호를 verify ()
에 대신 전달한 것 같습니다. 이것이 작동하지 않는 이유입니다. 일반 텍스트 암호를 첫 번째 인수로 전달하십시오.
참조 페이지 https://stackoverflow.com/questions/11481199
반응형
'MySql' 카테고리의 다른 글
MySQL 오프셋 대신 Codeigniter 페이지 매김에서 페이지 번호를 사용하는 방법은 무엇입니까? (0) | 2021.02.05 |
---|---|
MySQL mysql_fetch_row () 대 mysql_fetch_assoc () 대 mysql_fetch_array () (0) | 2021.02.05 |
MySQL ERROR / usr / libexec / mysqld : '/var/run/mysqld/mysqld.pid'파일 쓰기 오류 (오류 코드 : 28) (0) | 2021.02.05 |
MySQL 및 PHP 용 CRUD (0) | 2021.02.05 |
MySQL 이 SQL 쿼리에서 점은 무엇을 의미합니까? (0) | 2021.02.05 |
댓글