본문 바로가기
MySql

MySQL 데이터베이스에서 사용자 이름과 암호가 일치하는지 확인

by 베이스 공부 2020. 10. 15.
반응형

이름 속성이 username 인 텍스트 상자와 이름 속성이 password 인 텍스트 상자가있는 양식이 있습니다. user pass 라는 열이있는 데이터베이스도 있습니다. 내 사용자가 가입 할 때 user 열에 사용자 이름이 추가되고 pass 열에 비밀번호가 추가되었습니다.

양식이 올바른 사용자 이름과 암호를 제출했는지 확인하고 성공한 경우 코드를 입력 할 수있는 분기가 있는지 확인하는 MySQL 쿼리를 어떻게 만들 수 있습니까?

코드가 정말 필요합니다.이 비트는 잘되지 않습니다. SELECT * FROM table WHERE username == $ username AND ... 와 같은 형식이어야한다는 것을 알고 있지만 데이터베이스의 MD5 암호와 그 첫 번째 비트는 아마도 잘못되었을 것입니다. 도와주세요. :)

감사

 

해결 방법

 

1.) 데이터베이스 비밀번호 저장 솔트와 함께 어떤 종류의 해시를 사용한 다음 해시를 변경하고 난독 화합니다. 예를 들어 각 바이트에 대해 고유 한 값을 추가합니다. 이렇게하면 암호가 사전 공격과 레인보우 테이블에 대해 매우 안전하게 보호됩니다.

2.) 암호가 일치하는지 확인하려면 사용자가 입력 한 암호에 대한 해시를 만듭니다. 그런 다음 데이터베이스에 대해 사용자 이름에 대한 쿼리를 수행하고 두 암호 해시가 동일한 지 확인합니다. 그렇다면 사용자에게 인증 토큰을 제공하십시오.

그러면 쿼리는 다음과 같아야합니다.

select hashedPassword from users where username=?

그런 다음 암호를 입력과 비교하십시오.

추가 질문?

 

참조 페이지 https://stackoverflow.com/questions/5285388

 

 

반응형

댓글