我正在使用QR碼條形碼將UUID存儲在我的系統中,我需要檢查生成的條形碼是我的而不是其他人的。我還需要保持編碼數據的簡短,以便QR碼保持在較低的版本範圍內,並且仍然易於掃描。SHA-1摘要縮減
我的方法是獲取UUID原始數值(一個128位值)和一個16位校驗和,然後Base64編碼該數據,然後轉換爲QR碼。迄今爲止非常好,這完美地運作。
要生成校驗和,我使用UUID的字符串版本,並將其與長密鑰字符串組合,並將奇數字節異或並生成SHA-1哈希。但是這個散列太長了,所以我把所有的舊字節都放在一起來產生一半的校驗和,同樣用偶數字節來產生另一半。
讓我擔心的是我已經通過XORing不必要地損害了SHA-1系統。從結果中的某個地方取兩個未操作的字節會更好嗎?我同意16位校驗和不會像160位校驗和那樣安全,但這是我必須爲條形碼的可用性付出的代價。我真的不想找到的是,現在我已經提供了一個校驗和,它很容易破解,因爲UUID是透明的。
如果有更好的方法來生成校驗和,這也是對問題的適當答案。像往常一樣,非常感謝您的時間,或者只是閱讀本文,如果您發佈答案,加倍感謝。
謝謝smparkes,特別是關於轉換爲十進制字符串的提示。 – Dobbo 2012-08-04 10:18:23