2014-10-15 1 views
0

문제는 내가 mysql-db-user의 암호를 변경하고 이전 암호를 사용할 수 있다는 것입니다.하지만 그건 내가 금지하고 싶은 것입니다.MySQL - 암호 변경 - 이전 PW를 사용해서는 안됩니다.

예 :

  • 이전 비밀번호 : (? DB 암호화 - 어떻게 새로운 PW과 비교 할 수 있습니다) "테스트"

  • 새 암호 : "테스트"-> 주어야한다 이전 암호와 동일하기 때문에 오류가 발생했습니다.

어떻게 이전 암호를 새 암호와 비교할 수 있습니까? 아니면 MySQL-Workbench의 설정에 옵션이 있습니까? 미리 많은 감사드립니다!

편집 : 난 당신이 새 데이터베이스를 만들 수 있습니다하지 않는

+0

어떻게 암호를 변경 했습니까? 패스워드를 업데이트 한 후'FLUSH PRIVILEGES;'를 실행 해 보셨습니까? – Cyclonecode

+0

예,했는데 mysql이 "변경하지 않음"(이전 PW == 새 PW)을 인식하지 못했습니다. – Nighty

답변

0

좋아, 알 겠어 - 그리고 이것은 쉬운 해결책이다 :

처음에는 사용자 이름의 이전 암호를 물어보고 사용자가 설정하려는 새 암호와 입력을 비교한다. 둘 다 동일하면 내 응용 프로그램에서 오류가 발생합니다. 예 :

올드 PW : "테스트" 새로운 PW : "테스트"-> 오류 : 올드 PW == 새로운 PW가

아마 MySQL의 워크 벤치의 옵션이 있습니다 -하지만 내가 찾지 못했습니다 뭔가 이렇게.

0

FLUSH PRIVILEGES 경우 mysql 데이터베이스에서 user에 나와있는 데이터베이스 사용자의 암호 변경을 생각하고 그런 식으로 일을 비교하고있어 ?

1

임 정확히 흐름을 잘하지만, PHP, 당신은

$email = $_POST['email'] /*email posted from "password change" page*/ 

$query = mysqli_query($db,"SELECT `password` FROM `users` WHERE `email` = '$email'"); 
$result = mysqli_num_rows($query); 

$new_password = $_POST['new_password'] /*this is your new password*/ 

if($new_password == $result['password']){ 
    /*password is the same as previous*/ 
} else { 
    /*password is new*/ 
} 

코드는 테스트되지 않은 상태입니다 같은 것을 할 수 있어야하지만

작동하지 않는 경우에 가까이 있어야하지
+0

Java에서 구현하려고했지만 암호가 암호화되어 있습니다. ^^, 감사합니다. – Nighty

관련 문제