2017-09-29 135 views
1

我遇到了php.sha1和我的java代码问题。 我的PHP代码启用Java sha1原始模式,如php sha1

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

我的Java代码:

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