개발자
안녕하세요 2달차 신입 자바개발자입니다. 현재 spring boot로 거래소 api를 만들려고 하는데, 비밀번호 암호화에 대해 궁금한 점이 있습니다. JWT+PasswordEncoder를 통해서 비밀번호 암호화해서 db에 저장하는데 복호화가 불가능한 상황입니다. 그런데 기획 상으로 '비밀번호 재설정 유의사항 1. 이전 *회 동안 사용한 비밀번호는 사용 금지' 2. 생일, 전화번호 등 추측하기 쉬운 번호 금지' 라고 되어있는데, 사용자가 지정한 비밀번호를 알아야 기록을 남길 텐데 어떤 프레임워크나 스택을 써야할지 모르겠습니다. 노드 코인 주소를 저장할때도 암호화해서 저장했다가 내보낼때는 복호화해서 내보내야 한다고 하는데 비슷한 기능을 사용하면 될 것같은데 혹시 어떤 기능을 써야할지 추천 부탁드리면 너무 감사드리겠습니다.
답변 2
인기 답변
암호화 방법중에 단방향,양방향 암호화가 있습니다 단방향은 원문으로 복호화가 불가능한 케이스입니다. 양방향 암호화는 비밀번호를 db에 저장하는 용도로 적합하지 않구요. 검색해보니 사용하신 passwordEncoding은 단방향 암호화인것 같고 말씀하신 로직은 아마도 DB에 "이전 비밀번호" 컬럼을 n개 더 만들어두어서 저장해두었다가 비교하는 식으로 구현이 가능할것 같습니다. 비교할때 db에 있는 값을 복호화해서 비교하는것이 아니라 화면에서 받은 값을 암호화 한후 metches 함수로 비교하셔야 합니다. 생일이나 그런 로직은 보통 화면 - was 구간은 양방향 암호화로 구성후 was에서 복호화 후 다시 was - db 단방향 암호화 이런식으로 구현하는데 was에서 복호화 후 생일이나 기타 로직 확인하면 될 것 같습니다. 화면 - was 암호화는 RSA 암호화 사용하시면 될 것 같습니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!