为了账号安全,请及时绑定邮箱和手机立即绑定

byte数组转化为String

为什么MD5加密经过MessageDigest处理以后生成的byte[]数组,在转换成String型时,要用Hex.encodeHexString(bytes),而不能直接用new String(byte[]数组)呢,否则会出现乱码?

MessageDigest md = MessageDigest.getInstance("MD5");

byte[] bytes=md.digest(src.getBytes());

//System.out.println("jdkMd5 byte数组转String :" +new String(bytes)); 乱码

System.out.println("jdkMd5 :" +Hex.encodeHexString(bytes));


正在回答

1 回答

MD5 Message-Digest算法计算一个字符串 str 的MD5哈希值并返回. 这个哈希值是一个32个字符的16进制数.

0 回复 有任何疑惑可以回复我~
#1

大路孙 提问者

非常感谢!
2016-09-02 回复 有任何疑惑可以回复我~
#2

root750

还是不是很懂 能详细点吗 谢谢
2017-10-30 回复 有任何疑惑可以回复我~
#3

慕姐9781079 回复 root750

可以逐个字节进行转换,每个字节(8bit)都转换成表示两位的十六进制数的两个字符,在把所有的字符连接起来成字符就行了,比如一个有两个字节的字节数组{254, 255} 就可以对应成 'F''E' 和 'F''F' ==> "FEFF"
2018-06-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

byte数组转化为String

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信