Sha-256
有沒有辦法判斷給定字元串是否是 sha256 雜湊?
就像,例如,我們可以通過驗證前綴和校驗和輕鬆檢查給定號碼是否是簽證卡號碼 - 我們可以對雜湊做類似的事情嗎?
雜湊沒有定義的結構,例如 IBAN 銀行帳號,以遵循您的範例(不確定信用卡的情況)。
SHA 的輸出本質上是一個數值,沒有校驗和或其他附加元素。
要回答您的問題,您可以執行的唯一檢查是驗證潛在的 SHA-256 雜湊是否為 256 位長。事實上,由於您可以將任意輸入輸入到算法中,因此任何 256 位值都將是某些輸入的正確 SHA-256 雜湊值。
由於您提到字元串作為要檢查的數據類型:請注意,“字元串”雜湊通常是所述雜湊的最小十六進製表示。十六進制的最小形式由每個字節的兩個數字組成,其中每個數字是一個範圍從
0
to9
、a
tof
或A
to的字元F
。因此,如果您的候選字元串包含任何其他字母/符號,則可能會被拒絕。這是一項簡單的檢查,可讓您區分 (2 * 32 = 64) 十六進制和其他文本 - 它不能證明字節是散列函式的輸出。