2

我正在使用 MD5 散列来加密程序的密码。但它并没有创造出所有的角色,而且对一些人来说是不可读的。这是一个屏幕截图。链接- http://i46.tinypic.com/2qvf2o2.jpg

任何帮助表示赞赏

谢谢 IMG

4

3 回答 3

2

大概您想将 MD5 返回的字节数组转换为十六进制字符串以进行显示。像d131dd02c5e6eec4这样的东西。

您可以这样做:

在 Java 中,如何将字节数组转换为十六进制数字字符串,同时保持前导零?

于 2012-07-20T20:12:05.957 回答
0

您将 MD5 返回的字节解释为原始字符数据。
由于 MD5 不返回表示字符的字节,因此您得到的结果毫无意义。

于 2012-07-20T20:05:58.130 回答
0

你得到的是一个二进制值。所以这是一堆原始字节,可能会或可能不会映射到默认代码页中的有效字符。您应该做的是将 byte[] 转换为十六进制。您可以使用 Apache Commons Codec 之类的东西对其进行编码。http://commons.apache.org/codec/apidocs/org/apache/commons/codec/binary/Hex.html#encodeHex(byte[])

于 2012-07-20T20:06:36.013 回答