Android Hash无法正常工作

时间:2012-04-18 11:15:01

标签: android hash character-encoding sha256

我正在尝试使用Sha-256来散列网址,但我遇到了一些问题。我已经将字节转换为字符串,当我记录该字符串时,它显示错误而不是32字符长的rand字符,它显示:

04-18 11:46:00.427:V / myApp(797): C rE .mm“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);
    }   

2 个答案:

答案 0 :(得分:0)

以下是我为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算法......

答案 1 :(得分:0)

您的问题是将字节数组转换为String - 您可以使用它来执行此操作:

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