그누보드 비밀번호 암호화 방식을 스프링에서 어떻게 적용해야 하나요??
본문
PHP는 잘 모르는 JAVA개발자입니다..
그누보드5로 만들어진 웹을 스프링으로 변환하는 작업을 하고 있습니다.
DB의 계정관련 테이블에서 비밀번호 컬럼을 확인해보니
sha256:12000:{해쉬코드}
이러한 패턴으로 DB에 입력이 되어있어서 혹시 스프링 시큐리티로 호환 가능한 지 테스트해봤으나
스프링 시큐리티의 PasswordEncoder()와 호환이 되지 않습니다;;
어떻게 해야 스프링에서 호환할 수 있을까요?? ㅠ
답변 7
알려드리면 나중에 개발하신거 공유해주시나요?ㅋ
"lib/pbkdf2.compat.php"
참고하세요.
스프링 PasswordEncoder 에서 sha256으로 설정한거랑 다르게나오나요?
컬럼에 적혀있는거대로 PHP hash 함수테스트 해보세요 그새 salt 값 달라졌을 수도있고..
자바 Bcrypt 사용방법
// 사용자의 비밀번호
String password = "!@#$password1234";
// 위 비밀번호의 BCrypt 알고리즘 해쉬 생성
// passwordHashed 변수는 실제 데이터베이스에 저장될 60바이트의 문자열이 된다. String passwordHashed = BCrypt.hashpw(password, BCrypt.gensalt());
// 위 문장은 아래와 같다. 숫자가 높아질수록 해쉬를 생성하고 검증하는 시간은 느려진다.
// 즉, 보안이 우수해진다. 하지만 그만큼 응답 시간이 느려지기 때문에 적절한 숫자를 선정해야 한다. 기본값은 10이다.
String passwordHashed = BCrypt.hashpw(password, BCrypt.gensalt(10));
// 생성된 해쉬를 원래 비밀번호로 검증한다. 맞을 경우 true를 반환한다.
// 주로 회원 로그인 로직에서 사용된다.
boolean isValidPassword = BCrypt.checkpw(password, passwordHashed);
답변을 작성하시기 전에 로그인 해주세요.