byte数组转化为String

来源:2-2 MD算法实现

大路孙

2016-08-23 11:00

为什么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回答

  • 黎明前的黄昏
    2016-08-23 17:42:39
    已采纳

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

    慕姐9781... 回复root75...

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

    2018-06-13 22:45:45

    共 3 条回复 >

Java实现消息摘要算法加密

Java中应用消息摘要算法进行加解密,以及他们的应用场景

25498 学习 · 37 问题

查看课程

相似问题