md5로 암호화된 패스워드를 sql_password로 바꾸려면 어떻게 해야하나요?
본문
md5로 암호화된 패스워드를 사용하는 사이트에서 그누보드로 새롭게 홈페이지를 만드려고합니다.
md5로 암호화된 패스워드를 sql_password로 바꾸려면 어떻게 해야하나요?
답변 3
md5로 암호화된 패스워드를 sql_password를 바꾸는 방법은 없다고 생각이 됩니다.
보통 질문과 같은 상황에 처해 있으면 아래와 같이 처리합니다.
방법 1.
md5 로 패스워드인 회원이 로그인 시도시, 양해를 구하고 패스워드 찾기를 하라고 합니다.
( 패스워드 찾기 하면, 메일 인증 후 패스워드를 리셋 후 입력할 수 있습니다. )
방법 2.
http://stackoverflow.com/questions/14300696/check-if-string-is-an-md5-hash
위의 링크는 php 에서 md5 인지 검사하는 방법에 대해 나와 있는 url 입니다.
md5 패스워드를 가지고 있는 회원도 로그인 하게 할려면
if ( 로그인 실패시 ){
if ( 해당 회원의 db에 저장된 패스워드가 md5 이면 ) {
if ( md5( $_POST['password'] ) === 해당 회원의 db에 저장된 패스워드 ) {
맞으니까
update 테이블 set password = PASSWORD($_POST['password']) where 회원아이디 = '해당회원'
그 다음에 로그인 처리
}
}
}
이런식으로 프로그램 처리 하시면 됩니다.
잘 모르시겠으면 제작의뢰 하세요.
질문을 보고 저도 한번 궁금해서 찾아봤는데요.
결론은 거의 불가능하다고 보시면 되겠습니다.
MD5 hash(인코딩) : http://www.miraclesalad.com/webtools/md5.php
MD5 hash Decode : http://www.md5online.org/
5글자 숫자+문자+특수문자 넣어서 테스트 해봤는데요.
MD5 Decode는 현실적으로 불가능하다고 알고 있습니다.
몇몇 사이트를 뒤져봤는데 DB에 저장된 인코딩 키와 비교하여 보여주는 방식이네요.
수고하세요.
강제로 변경하려고 애쓰는것보다
db에 password 컬럼을 하나더 두는것도 방법입니다.
로그인시에 md5로 저장된값을 비교하는 시점에
1. 변환할 text password 를 변수에서 관리하고
2. md5로 저장된 password와 동일한경우
3. sql_password 로 해당 비번을 update 해서 저장합니다.