MD5 (기존 항목)와 BCrypt 비밀번호가 모두 포함 된 사용자 테이블이 있습니다. 브루투 포스없이 MD5 암호를 BCrypt로 마이그레이션하고 싶습니다. 성공적인 인증을 위해 암호를 다시 암호화하는 방법에 대해 생각했습니다.스프링 보안 - 인증시 명확한 비밀번호 가져 오기 및 다시 암호화
erase-credentials
을 authentication-manager
선언으로 사용 중지하면 암호를 알아낼 수 있습니다 (로그인 페이지에서). 이 경우 내 사용자 지정 AuthenticationSuccessHandler
뿐 아니라 내 응용 프로그램의 어느 곳에서도 자격 증명 정보에 액세스 할 수 있습니다 (SecurityContextHolder.getContext().getAuthentication()
사용).
인증에 성공한 경우에만 암호를 해독 할 수 있습니까? 아니면 사용자 조작 (비밀번호 변경 등)을 요구하지 않고 비밀번호를 다시 암호화하는 더 좋은 방법을 알고 있습니까?
이 솔루션은 기존의 MD5 해시 새로운, 더 나은 (BCrypt) 인코더 값을 모두 받아들이는 암호 인코더를 만드는 것입니다, 그리고 하나를 찾을 때 MD5 해시를 마이그레이션하면