在java,"DatatypeConverter.printBase64Binary"使用该函数时,预期结果不同
in java, When "DatatypeConverter.printBase64Binary" use this function, the expected result is different
下面的代码,是Java编码为sha1再编码为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==
为什么两者的结果不同?
当您使用这些网站时,您是在以十六进制字符编码后对哈希进行 base-64 编码。这很奇怪,可能不是你想要的。您的 Java 代码直接使用 base-64 对哈希本身进行编码。
下面的代码,是Java编码为sha1再编码为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==
为什么两者的结果不同?
当您使用这些网站时,您是在以十六进制字符编码后对哈希进行 base-64 编码。这很奇怪,可能不是你想要的。您的 Java 代码直接使用 base-64 对哈希本身进行编码。