Hash 如何将SHA-256编码两次?

Hash 如何将SHA-256编码两次?,hash,cryptography,Hash,Cryptography,很简单,如何获得下面的“第二轮” 你好 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824(第一轮sha-256) 9595c9df90075148eb06860365df33584b75bff782a510c6cd4883a419833d50(第二轮sha-256) 我去一个在线散列计算器,输入“你好”,得到第一轮,然后把散列放入计算器,得到的结果与第二轮不同。那么它是如何做两次的呢?当您将第一个散列输出粘贴回散列计

很简单,如何获得下面的“第二轮”

你好
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824(第一轮sha-256)
9595c9df90075148eb06860365df33584b75bff782a510c6cd4883a419833d50(第二轮sha-256)


我去一个在线散列计算器,输入“你好”,得到第一轮,然后把散列放入计算器,得到的结果与第二轮不同。那么它是如何做两次的呢?

当您将第一个散列输出粘贴回散列计算器进行第二轮时,您将其散列为字母和数字的ASCII字符串,而不是由这些十六进制数字表示的实际字节序列。换句话说,插入哈希计算器的字符串的第一个字节实际上需要是0x2C,而不是0x32(这是“2cf2…”开头字符“2”的ASCII值)

当您将第一个哈希输出粘贴回哈希计算器进行第二轮时,您将其作为字母和数字的ASCII字符串进行哈希处理,而不是那些十六进制数所表示的实际字节序列。换句话说,插入哈希计算器的字符串的第一个字节实际上需要是0x2C,而不是0x32(这是“2cf2…”开头字符“2”的ASCII值)

如果您只是复制/粘贴第一个结果,则最有可能在其末尾出现一个或多个空格字符,这将完全摆脱散列。我只是输入它,看看它是否会改变,但它没有。我一直在得到D7914FE546B684688BB95F4F888A92DFC680603A75F23EB823658031FFF766D9这句话我拉错了吗?它应该散列原始字节,而不是base64编码的字节吗?如果你只是复制/粘贴第一个结果,很可能它的末尾有一个或多个空格字符,这将完全摆脱散列。我只是输入它,看看它是否会改变,但它没有。我一直得到D7914FE546B684688BB95F4F888A92DFC680603A75F23EB823658031FFF766D9这句话是我拉错的吗?它应该散列原始字节,而不是base64编码的字节吗?好的,那么我的逻辑是正确的。它散列第一个散列的输出。“非常感谢。”当然是乔斯林。SHA不关心您提供的输入是否恰好是另一个SHA调用的输出。这只是个字节。好的,那么我的逻辑是正确的。它散列第一个散列的输出。“非常感谢。”当然是乔斯林。SHA不关心您提供的输入是否恰好是另一个SHA调用的输出。它只是个字节。
echo -n hello | openssl dgst -sha256 -binary | openssl dgst -sha256