2017-09-29 5 views
1

php.sha1 및 java 코드에 문제가 있습니다. 내 PHP 코드PHP sha1과 같은 Java sha1 raw 모드 활성화

echo base64_encode(sha1("test", TRUE)); 
qUqP5cyxm6YcTAhz05Hph5gvu9M= 

그리고 내 자바 코드 :

static String Hash(String input) throws Exception { 

    MessageDigest mDigest = MessageDigest.getInstance("SHA1"); 
    byte[] result = mDigest.digest(input.getBytes()); 
    StringBuffer sb = new StringBuffer(); 
    for (int i = 0; i < result.length; i++) { 
     sb.append((result[i/Byte.SIZE] << i % Byte.SIZE & 0x80) == 0 ? '0' : '1'); 
    } 
    return base64_encode(sb.toString()); 

} 

출력 MTAxMDEwMDEwMTAwMTAxMDEwMDA=

가 어떻게 동일한 문자열을 얻을 수있는 루프를 변경해야합니까?

답변

2

이 일해야 RAW SHA-1

String base64 = 
Base64.getEncoder().encodeToString(MessageDigest. 
getInstance("SHA-1").digest(s.getBytes("ISO-8859-1"))); 
+0

TNX 같은 작품! 그것은 정말로 효과적이다! – ttt