2017-09-29 5 views
1

php.sha1と私のJavaコードに問題があります。 私のPHPコードphp sha1のようなJava sha1 rawモードを有効にします

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

この1つはRAW SHA-1

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

TNXのように動作しなければなりません!それは本当に動作します! – ttt