在java中,当;DatatypeConverter.printBase64Binary“;使用此功能,预期结果不同

在java中,当;DatatypeConverter.printBase64Binary“;使用此功能,预期结果不同,java,base64,Java,Base64,下面的代码,是编码为sha1然后编码为base64的Java代码 System.out.println("key : "+DatatypeConverter .printBase64Binary(MessageDigest.getInstance("SHA-1").digest(("wZCYQre/AdRckTa9/hwEHg==258EAFA5-E914-47DA-95CA-C5AB0DC85B11")

下面的代码,是编码为sha1然后编码为base64的Java代码

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==

为什么两者的结果不同

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

第二个字符串太长,不能成为SHA-1哈希。它可能是两个串联的SHA-1哈希的base-64编码结果。删除不准确的信息,并清楚地描述获取第二个字符串的过程,如果这是您问题的重点。在每篇文章中问一个问题;用C编码散列是一个单独的问题。第二个字符串结果来自www.sha1-online.com,正如你所说,我只有一个问题。为什么这两个结果不同?谢谢你的回答!我得到一个提示。谢谢你给我关于如何提问的建议。