Java 从两个相同的字符串中获取不同的哈希值

Java 从两个相同的字符串中获取不同的哈希值,java,hash,sha256,Java,Hash,Sha256,我正在做一些散列实验。我在做一个简单的测试时遇到了一个问题 这是我的代码: String newWord = readFile("C:\\Users\\javip\\Desktop\\Workspace SSII\\listado-general.txt").get(5); System.out.println(newWord); String qwerty = "qwerty2"; System.out.println(qwerty); System.out.println(newWord.e

我正在做一些散列实验。我在做一个简单的测试时遇到了一个问题

这是我的代码:

String newWord = readFile("C:\\Users\\javip\\Desktop\\Workspace SSII\\listado-general.txt").get(5);
System.out.println(newWord);
String qwerty = "qwerty2";
System.out.println(qwerty);
System.out.println(newWord.equals(qwerty));
String sha256hex = DigestUtils.sha256Hex(newWord); 
System.out.println(DigestUtils.sha256Hex(qwerty));
System.out.println(DigestUtils.sha256Hex(sha256hex));
这是我的控制台打印的内容:

qwerty2
qwerty2
true
42ad28944380f770cf17432c3494c07c32f680173b42c3562888f096e738ef7a
ebd11cf2e1a82248edff75899ba331ffa35787c070767da0c695bba8e2be5355
我做错了什么?通过对INTERET的一些SHA256加密机的比较,我知道

42AD28944380F770CF17432C3494C07C32F680173B42C356288F096E738EF7A

是使用SHA256的“qwerty2”的正确哈希。

您的最后一行:

System.out.println(DigestUtils.sha256Hex(sha256hex));
实际上:

System.out.println(DigestUtils.sha256Hex(DigestUtils.sha256Hex(newWord)));

i、 例如,您正在打印哈希的哈希。

为什么您希望双哈希
newWord
DigestUtils.sha256Hex(DigestUtils.sha256Hex(newWord))
)等于单哈希
qwerty
DigestUtils.sha256Hex(qwerty)
)?天哪。。。谢谢你们。。。几个小时的问题让你对自己的代码视而不见。请随意接受下面的正确答案。