//ADD MD5 hash to the password
$db_pass=md5($pass1);
//************Insert all the user's input to the database**************************//
$query = mysql_query("INSERT INTO user(user_name, first_name, last_name, governorate,
district, village, birth_date, email_address, specialization, password,
registered_date)VALUES('$username', '$firstname', '$lastname', '$governorate',
'$district', '$village', '$bdate', '$email', '$specialization', '$db_pass',
now())") or die("could not insert data");
login.php. 그것은 안전하지 않으며 당신이 암호 해싱의 목적을 위해 그것을 사용하기에는 너무 빠르다고 waaaaay입니다 (빠른 암호 해싱 알고리즘을 사용하는 것이 왜 나쁜지 이해하지 못한다면 Brute-force attacks의 Wiki 페이지를보십시오). Bcrypt과 같은 것을 사용해야합니다.
crypt function을 통해 Bcrypt를 사용할 수 있습니다. 누군가가 위에서 언급 한 바와 같이
$userPassword = 'testpassword';
$hashed = crypt($userPassword, '$2a$15$usesomesillystringforsalt$');
echo $hashed;
는 ircmaxell는 GitHub의에서 사용할 수있는 pretty good library 있습니다. 라이브러리는 PHP 5.5 (현재 베타 버전)에서 사용할 수있는 password_hash 함수와 포워드 호환됩니다.
문제가 무엇인지 더 자세히 설명해 주시겠습니까? 나는 전혀 모른다 ... –
해싱은 훌륭하지만 무염의 MD5는 여전히 안전하지 못하다. (모든 무염의 해시는 레인보우 테이블 공격에 취약하며 특히 MD5는 안전하지 못하다.) 대신 소금에 절인 SHA2 변형을 사용해보십시오. 각 암호에는 자체 소금이 있어야합니다. 전역 소금은 여전히 무지개 표를 사용할 수 있습니다. – cdhowie
이것을 구현하는 중이라면 지금 당장 중지하고 https://github.com/ircmaxell/password_compat와 같은 적절한 암호 해시 체계를 사용하십시오. 무염의 MD5는 지금까지 영원히 부족했습니다. – deceze