在java中,当“DatatypeConverter.printBase64Binary”使用此函数时,预期结果是不同的

时间:2017-03-31 17:42:50

标签: java base64

以下代码,它是编码为sha1的Java代码,然后编码为base64。

System.out.println("key : "+DatatypeConverter
                                .printBase64Binary(MessageDigest.getInstance("SHA-1").digest(("wZCYQre/AdRckTa9/hwEHg==258EAFA5-E914-47DA-95CA-C5AB0DC85B11")
                                        .getBytes("UTF-8"))));

上面的代码结果是..

key : 1jBpw9uqcRx3Cl/AajHQmeDYw/c=

但是sha1编码网站和base64编码网站的结果是

key : ZDYzMDY5YzNkYmFhNzExYzc3MGE1ZmMwNmEzMWQwOTllMGQ4YzNmNw==

为什么两者的结果不同?

1 个答案:

答案 0 :(得分:1)

当您使用网站时,您使用十六进制字符进行编码后对游标进行base-64编码。这很奇怪,可能不是你想要的。您的Java代码直接对哈希本身进行base-64编码。