로그인 시스템을 만들고 비밀번호 인코딩에 crypt 함수를 사용하기 시작했습니다. 내 문제는 거기에 사용자와 암호를 모두 등록하면 사용자 이름 암호와 소금이 데이터베이스에 저장된다는 것입니다.같은 salt, password 및 복어로 다른 결과를 반환하는 crypt 함수
참고 : $ 2 :이 순간 그것이 실제 예를 암호 테스트로 나오면됩니다 그래서 corrrect 암호화
$username=$_POST["username"];
$password=$_POST["password"];
$salt = substr(md5(microtime()),rand(0,26),15);
$hashedPass = crypt($password,'$2y$10$' . $salt);
$sql="INSERT INTO `users`(`id`, `username`, `password`, `salt`, `Perm_level`) VALUES (NULL,'$username','$hashedPass','$salt','test')";
$result=mysql_query($sql);
에서만 테스트 레지스터 페이지 여기 는 등록을위한 코드입니다 Y $ $ 10의 d395985a2ca993f의 $$$$$$ k8lxPkUCenMKsOJ6V8tdO6Pl/GL1/OW
과 소금를위한 것입니다. 내가 끌어 불구하고 로그인을 갈 때
d395985a2ca993f
소금을 데이터베이스에서 꺼내어 같은 방식으로 다시 암호화하려고 시도하지만 다른 암호화 된 암호를 얻습니다 ... 소금이 정확하므로 암호의 첫 부분이므로 "$ 2y $ 10 $ d395985a2ca993f $$ $$$$. " 여기
는 로그인 아래의 코드입니다 $ (2Y) $ $ 10의 d395985a2ca993f의 $ $ $ $ $ : 로그인 페이지 소금 여기 올바르지 만에$sql="SELECT * FROM `users` WHERE username='$user'";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){
$salt=$rows['salt'];
}
$hashedPass = crypt($password,'$2y$10$' . $salt);
$sql="SELECT * FROM `users`WHERE username='$user' AND `password` = '$hashedPass'";
$result=mysql_query($sql);
if($result) {
if(mysql_num_rows($result) == 1) {
echo "Successful Login";
}
}
가 해시 된 후 암호입니다 $ .ccy3PKl.TsG26FWJBFXKmpQ3wtk4AqC는
전체 정류장 첫 번째 부분 위로는 단지 하반기 난 그냥에 대한 테스트를위한 ABC 같은 123 수동 하나에 소금을 설정하기 위해 노력했다
다른 올바른지 로그온 및 등록 페이지 b ut 여전히 동일한 오류가 있습니다