Sha-3

十六進制和 ASCII 給出不同的 SHA3 雜湊,為什麼?

  • March 9, 2018

十六進制和 ASCII 使用相同的二進制程式碼進行編碼。為什麼 ASCII 中的消息和十六進制中的相同消息會產生不同的雜湊?

例如,消息helping strangers over the internet is fun!!!!!!!!!!!!!!!!!!!!!!給出了 hash 8029b81d7b1c01460710c855651d2f44062e57fca135987a8558f30d0264e07bea1be37e759bd9059b11758be47bef473e9691526acda84089d10415e327ef7a

而消息的十六進制,則68656c70696e6720737472616e67657273206f7665722074686520696e7465726e65742069732066756e21212121212121212121212121212121212121212121給出另一個雜湊,d19bf1494bd6a3f71794dd5a07e83fde48147ab0e3736348af61e73fcddfc2733ba6d89740d3d99667dff9bed3ce1a61ad6215b4cfdfdb09eaf86b1d20280ce1

通過https://emn178.github.io/online-tools/keccak_512.html散列

您所說的十六進制實際上是一個 ascii 編碼的十六進制編碼字元串。換句話說,它類似於ascii(hex(string)). 在另一種情況下,您只是傳遞 ascii 字元串。

換句話說,您使用的工具需要一個 ascii 字元串。因此,通過鍵入686564等,您正在對十六進制編碼的字元串進行 ascii 編碼。

因此,您獲得不同的輸出是有道理的。請注意,所有散列函式都會發生這種情況,而不僅僅是 SHA3。

引用自:https://crypto.stackexchange.com/questions/56297