Java & Kotlin
패스워드 암호화(작성중)
필자A
2021. 8. 4. 21:56
☘️
사용자의 password를
db에 그대로 넣으면 안 된다.
(현행법상 막았다고 한다.)
상식적으로도 외부에서 접근이 되었는데
암호가 평문으로 모두 입력되어있으면 그대로 보일 것이다.
그리고 많은 이용자들이 비슷한 암호로 여러 서비스에 가입했을 것이니
피해는 엄청날 것이다.
SHA
패스워드의 암호화에 이용된다고 한다.
키를 사용하지 않고 같은 입력에 대하여
같은 출력이 나온다고 한다.
(본래는 무결성체크에 이용)
SHA256
무슨 문자열을 입력해도
같은 길이의 문자열이 나오게 되어있다.(32바이트)
그리고 입력값이 조금만 바뀌어도 출력 값이 매우 많이 바뀌게 되므로
입력값에 대하여 유추하기가 어렵다.
입력값에 대하여 같은 출력값이 나오게 되지만
아주 조그마한 확률로 다른값이 나올 수 있다.
아래 사이트에서 직접 확인해보자.
https://emn178.github.io/online-tools/sha256.html
SHA256 Online
emn178.github.io
Bcrypt
단방향 해시 비밀번호 메커니즘
$2a$10$rLz4XRZQ...
로 이루어지는데
앞에 $2a는 bcrypt의 버전
$10은 키스트레칭을 돌린 횟수라고 한다.
그뒤에는 salt + 인코딩된 암호이다.
반응형