Android哈希不工作

Android哈希不工作,android,hash,character-encoding,sha256,Android,Hash,Character Encoding,Sha256,我正在尝试使用Sha-256散列url,但有一些问题。我已将字节转换为字符串,当我记录该字符串时,其显示不正确,而不是32个字符长的随机字符,其显示如下: 04-18 11:46:00.427:V/myApp(797):�C�重新�������.毫米“7�{���"��Q] m 任何帮助都将不胜感激 这是我的密码: public void hash() throws NoSuchAlgorithmException, UnsupportedEncodingException{

我正在尝试使用Sha-256散列url,但有一些问题。我已将字节转换为字符串,当我记录该字符串时,其显示不正确,而不是32个字符长的随机字符,其显示如下:

04-18 11:46:00.427:V/myApp(797):�C�重新�������.毫米“7�{���"��Q] m

任何帮助都将不胜感激

这是我的密码:

public void hash() throws NoSuchAlgorithmException, UnsupportedEncodingException{

        MessageDigest md = MessageDigest.getInstance("SHA-256");
        md.update(fixturesFeedURL.getBytes("UTF-8"));
        byte[] digest = md.digest();
        String strhash = new String(digest);
        Log.v("myApp", strhash);
    }   

以下是我为MD5所做的:

MessageDigest md = MessageDigest.getInstance("MD5");
byte[] b = md.digest(input.getBytes());
StringBuffer output = new StringBuffer();
for (int i = 0; i < b.length; i++) {
  String tmpStr = "0" + Integer.toHexString((0xff & b[i]));
  output.append(tmpStr.substring(tmpStr.length() - 2));
}
return output.toString();
MessageDigest md=MessageDigest.getInstance(“MD5”);
byte[]b=md.digest(input.getBytes());
StringBuffer输出=新的StringBuffer();
for(int i=0;i

可能只是更改MessageDigest算法的问题…

您的问题是将字节数组转换为字符串-您可以使用以下方法:

http://commons.apache.org/codec/apidocs/org/apache/commons/codec/binary/Hex.html#encodeHex(字节[])

请参见