2010-07-27 7 views
0

나는 큰 사용자 기반이있는 사이트를 상속 받았습니다. 내 클라이언트가 자신의 레코드를 업데이트하고 약 900 명의 사용자를 위해 미리 지정된 암호를 mysql 테이블로 가져와야합니다. PHP 프론트 엔드를 통해 암호를 입력하면 암호를 암호화하는 것처럼 보입니다. phpMyAdmin을 사용하여 모든 비밀번호를 가져올 수는 있지만 암호화되지 않은 형식이므로 테스트 할 때 작동하지 않습니다. 암호를 내 테이블로 가져 오기 전에 암호를 암호화하는 방법이 있습니까?처음 사용자 암호를 MYSQL로 가져 오기

답변

1

귀하의 질문에 100 % 확실하지는 않지만 귀하의 암호가 MySQL이 암호화하는 열에 저장되어 있다고 가정합니다.

가져 오기 전에 "암호를 암호화"하려면 어떤 암호화 알고리즘이 사용 중인지 알아야합니다. 여기에는 데이터베이스 스키마와 코드를 삽입하기위한 코드, 암호화가 수행되는 위치 찾기, 알고리즘 식별이 포함됩니다.

일단 암호를 암호화하려면 동일한 알고리즘을 사용하십시오.

0

앱이 예상하는 것과 동일한 암호화 방법을 사용하여 비밀번호를 가져 오기위한 스크립트를 작성해야합니다.

PHP 프런트 엔드의 소스 코드를 읽고 암호를 암호화하는 데 사용하는 방법을 알아야합니다. 코드를 공부하지 않고 그들의 방법을 추측하려고하면 시간 낭비입니다.

해싱 방법에 따라 SQL 업데이트 만 사용하여 이미 가져온 일반 텍스트 암호를 해시 된 버전으로 변환 할 수 있습니다. 예를 들어이 SHA1을 있다면, 당신은이 작업을 수행 할 수 있습니다 :

UPDATE accounts SET password = SHA(password) 

해시와 암호를 덮어 쓰게됩니다. 해시는 이 아니며 되돌릴 수 있으므로 이니 시도하기 전에 db 백업을 만드십시오!

두려움없는 리더가 You're Probably Storing Passwords Incorrectly으로 읽는 것이 좋습니다.

+0

Bill, 사이트에서 사용중인 해시의 방향에 대해 감사 드리며 md5입니다. 암호 열에서 SQL 업데이트를 실행했는데 제대로 작동했습니다. 당신의 도움을 주셔서 감사합니다. – pixelJockey

+0

도와 드리겠습니다. upvotes를 포기하고 당신을 도운 사람들에게 '받아 들인 대답'을 선택하는 것을 잊지 마십시오. 작은 일이지만 Stack Overflow에서 게임을하는 방법입니다. :-) –

0

는 해결 :

UPDATE 사용자가

덕분에 모든 입력 = MD5 (user_password를) user_password 설정합니다.

관련 문제