본문 바로가기
걸어서 개발 속으로

pw 암호화(md5)후 DB에 저장하기

by puy0 2023. 2. 17.

내 프로잭트의 비밀번호 저장 기능은

유저가 입력한 비밀번호 그대로 DB에 저장 된다

이렇게 되면 비밀번호가 노출될 위험이 있다

 

비밀번호가 그대로 저장되지않고

비밀번호의 해시값을 저장 하고

로그인시 입력한 비밀번호도 해시함수를 거친뒤

DB에 저장된 비밀번호와 대조 후

해시값이 같다면 로그인이 승인되는 방식이

비밀번호 암호와의 방식이다

 

이전의 글 에서

https://pushvalue.tistory.com/41

 

로그인 할때 ID와PW 값을 입력하지 않아도 로그인 되는 현상

아직 css를 넣지 않았지만 제대로 작동하는 로그인폼이 있다 제대로 입력하지않는다면 에러페이지도 나온다 회원가입과 다르게 로그인은 user정보 대조후 맞고 안맞고가 확실하기때문에 입력 제

pushvalue.tistory.com

 

 

 

pw가 DB에 그냥 저장되는것은 알고 있었다

이번에 user 구현부를 살펴보다가 이번에 고쳐야겠다고 생각했다

 

구글에 mysql 해시 검색하다가 오라클 문서를 발견했다

https://docs.oracle.com/en-us/iaas/logging-analytics/doc/filter-logs-hash-mask.html

 

Using Logging Analytics

You can use md5 function in your queries or with where and eval commands to filter the log data that has the hash masked data.

docs.oracle.com

쿼리에서 md5함수를 사용할수있다고해서 그방법대로 했다

 

다행히 md5함수를 사용하는것은 어렵지않았다

MD5를 사용한 join
MD5를 사용한 login

해시를 회원가입 구현부에 적용하는것은 크게 어려움이 없었다

user_pw 를 md5로 감싸주면 해시값이 DB에 저장된다

 

해시를 로그인 구현부에 적용할때는 비밀번호의 해시값을 다시 받아오지 않았다

암호화를 하기 전에도 굳이 다시 비밀번호를 받아오는것은

비밀번호가 노출될수도 있지않았을까 생각했다
비밀번호가 필요한 절차에선 비밀번호를 또 입력하도록해서

해시값을 비교하는 방법을 쓰는것이 좋을것 같았다

 

 

댓글