joomla 기반 cms 시스템에서 스프링 기반 Java EE 환경으로 일부 데이터를 마이그레이션 중입니다.소금으로 인코딩 된 Md5
분석 중에 나는 암호의 md5 구현이 joomla와 같지 않다는 것을 알고 ??? 모든 아이디어 왜 md5 구현의 차이 ?? 예를 들어
: 줌라 레코드 "3c57ebfec712312f30c3fd1981979f58:WnvTroeiBmd5bjGmmsVUnNjppadH7giK
"와 같은 암호 필드 있었다면 (여기 3c57ebfec712312f30c3fd1981979f58
최종 MD5 해시 다이제스트와 WnvTroeiBmd5bjGmmsVUnNjppadH7giK
사용자 비밀번호 입력에 추가되는 키이다) 사용자가이 기록에 로그인을 시도 할 때 및 스프링 시스템 실패.
스프링 기반 Java EE 시스템에서는 해시 인코더를 md5로 사용하고 소금을 변수로 사용합니다 (WnvTroeiBmd5bjGmmsVUnNjppadH7giK
).
Junit 코드 단편 : 이 테스트 사례는 실패합니다.
@Test
public void testSpringMD5Functionality() {
String md5MigratedPassword = "3c57ebfec712312f30c3fd1981979f58:WnvTroeiBmd5bjGmmsVUnNjppadH7giK";
String[] m = md5MigratedPassword.split(":");
Md5PasswordEncoder passwordEncoder = new Md5PasswordEncoder();
passwordEncoder.setEncodeHashAsBase64(false);
boolean value = passwordEncoder.isPasswordValid(m[0], "password", m[1]);
assertTrue(value); //test case fails ?????
}
그것은 this.Below 테스트 케이스를 해결하기 위해 거의 하루에 걸렸다는 공공 무효 testSpringMD5Functionality() { 문자열 md5MigratedPassword = @Test 작동 "3c57ebfec712312f30c3fd1981979f58 : WnvTroeiBmd5bjGmmsVUnNjppadH7giK"; String [] m = md5MigratedPassword.split (":"); Md5PasswordEncoder passwordEncoder = new Md5PasswordEncoder(); passwordEncoder.setEncodeHashAsBase64 (false); 부울 값 = passwordEncoder.isPasswordValid (m [0] + m [1], "password", null); 어설트 트루 (값); // 테스트 케이스 패스 } – challenge