Hash

是否可以有一個以 16 個字元而不是 12 個字元結尾的 UUID 形式的雜湊?

  • July 28, 2021

您可能知道有時 URL 中的雜湊可能是 UUID 格式,它由由連字元分隔的十六進制值組組成。在 UUID 格式中,我了解到這個雜湊採用以下形式:

8-4-4-4-12 共 32 個字元。但是,我遇到了一個 URL,其中包含一個請求參數的雜湊值,如下所示:

9ced2fb4-f1df-4f00-af76-940736bfeee0001f

請注意,此格式為 8-4-4-4-16。

現在,我想知道這是否真的是一種 UUID 格式,或者這完全是什麼別的東西。需要注意的是,請求參數的名稱是 cid,所以我不知道“cid”是否可以替代 UUID 或類似的東西。

此外,無論它是否是 UUID,您如何將這種類型的雜湊轉換為沒有連字元的普通雜湊(我的意思是說我想將它轉換為您只需使用即可獲得的輸出像 MD5 或 SHA-1 之類的散列算法或類似的東西)?

UUID在行業中被很好地標準化為 16 字節實體,具有 8-4-4-4-12 十六進製表示。有幾種方法可以生成 UUID,其中一些涉及散列,但簡單地從散列函式的輸出中取出 16 個字節並將其稱為 UUID 是不合規的。

顯然,任何長度不等於 16 的字節序列都不是 UUID。從任意字節數組的標準 UUID 十六進製表示中獲取靈感並非不合理。UUID 格式的優點是使用一小組字元,並具有視覺分隔符以減少轉錄錯誤。

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