플랑크톤
1k
2019-05-18 23:34:35 작성 2019-05-18 23:36:06 수정됨
2
383

스프링 암호화 질문..


매번와서 질문만 하고가네요.. ㅎㅎ..


회원가입,로그인기능 만들고있습니다. 

그리고 비밀번호를 암호화처리시키려고 하는데.

가장 윗 사진에서 위에 두개 제외하고 밑 4개 데이터를 암호화시켰습니다.

그런데 암호화시킨데이터가.. 전부 제각각인데 이렇게되는게 맞나요..?

그리고 로그인할때도 logger찍어서 확인해보니 로그인할때마다 암호화가 제각각이 되는데 이게 정상인가요..?


코드입니다..

0
  • 답변 2

  • 아야로
    1k
    2019-05-18 23:42:06 작성 2019-05-19 00:07:48 수정됨
    결론부터 말하자면 정상입니다.

    알고리즘마다 조금씩 다른데 적용하신 BCrypt 알고리즘의 경우 암호화시 원본 문자열에 랜덤한 문자를 섞어넣습니다. 이를 SALT값이라 부르는데, 해커들이 '사용자들이 패스워드로 자주 사용하는 용어사전'에 입각해 비밀번호를 유추하는걸 막기위한 대책입니다.

    즉, 암호화 대상 문자열이 그때그때 달라지니 결과 문자열도 모두 다르게 됩니다.

    아주 정상적으로 올바르게 동작했네요 !
    ------------------------
    아차차, 추가로 말씀드리자면 이런 특성때문에 로그인시 패스워드 비교는 개발자가 직접 하지말고 BCrypt 라이브러리에 맡겨야 합니다.
    boolean isSame = Bcrypt.checkpwd(사용자가 보내온 비암호화된 패스워드, DB에서 꺼낸 암호화된 패스워드);
    아마 이렇게 썼던걸로 기억합니다. 개발자는 DB저장값을 직접 풀수는 없고, 특정 문자열과의 일치여부만 알 수 있습니다.
  • 플랑크톤
    1k
    2019-05-19 00:57:44

    해결했습니다.. 정말 감사합니다 ㅠㅠ

  • 로그인을 하시면 답변을 등록할 수 있습니다.