2009-10-20 4 views
1

Java 구현은 독립 실행 형 응용 프로그램으로 실행되거나 웹 응용 프로그램 내에서 실행되는 경우 동일한 입력 문자열에 대해 두 가지 다이제스트를 만듭니다.MD5 해시 문제 (Java)

독립 실행 형 응용 프로그램이 구현은 문자열 변환 구현

MessageDigest md5 = MessageDigest.getInstance("MD5"); 

    if (md5 != null) { 
     md5.reset(); 
     newHashByte = md5.digest(msg.getBytes()); 
    } 

    newHash = convertToString(newHashByte); 

진수입니다 당신이 이것을 해결하는 데 도움 수 있다면

StringBuffer result = new StringBuffer(64); 

for (int i = 0; i < digestBits.length; i++) 
    hexDigit(result, digestBits[i]); 

return result.toString(); 

가 높은 감사 인 오라클 DBMS 와 일치합니다.

답변

2

각각 msg은 어디에서 왔습니까? 한 경우에는 줄 바꿈 문자가 있지만 다른 줄 문자는없는 것 같습니다. 또한 두 시나리오에서 문자 인코딩이 어떻게 든 다르게 설정 될 수도 있습니다. msg을 제외하고는 귀하의 모범이 변화하고 있음을 매우 의심합니다.

7

다른 기본 인코딩이있는 것 같습니다. 이와 같은 올바른 인코딩을 사용하십시오.

newHashByte = md5.digest(msg.getBytes("utf-8")); 
관련 문제