我需要在數據庫中的md5哈希列上放置索引。我將在md5列上執行搜索。我打算將散列存儲爲CHAR(32),但我也看到了二進制列選項。將存儲一個md5哈希更好地在二進制列或char(32)中工作。我可以使用Linq to Entities查詢二進制列嗎?如果是這樣,我會怎麼做呢?Linq:如何在數據庫中存儲MD5哈希列
2
A
回答
5
如果您使用的SQLServer或支持128位的GUID類型的...你可以使用GUID類型來表達的MD5值,任何其他服務器。
由於MD5是16字節(128位),因此您可以輕鬆將其轉換爲GUID。 爲了在C#中做到這一點,您可以使用Guid結構和\或手工編寫簡單的轉換例程。
Guid的格式爲xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx其中x是一個十六進制字符,但內部存儲爲128位整數,因此它們佔用的空間非常小,對於查詢!
GUIDS作品比char或binary要好得多,它們是固定的大小,而且通常用作鍵\時,由於需要對他們非常高的速度和低空間消耗更多的比特指數,而不是INT。
0
如果索引相同,則選擇哪種類型並不重要,差異將存儲在存儲中。二進制類型可能會更小,而char類型會將值編碼爲整數。真的在一天結束的時候我會使用char,因爲它會更加寬容二進制文件。所以,除非你儲存了大量的這些數據,否則這不會產生太大的影響。至於LINQ,我不確定,但我很確定你可以,它只是字段而不是字段。這就是我要去char的另一個原因,它使得處理linq變得更容易。
0
這實際上取決於你如何在代碼中表示你的散列。如果它是一個字節數組,請繼續並使用二進制數據庫類型。如果它是一個字符串,請使用它。無論哪種方式,它都是某種程度上的二進制數據,只是在向您顯示數據時告訴計算機如何解釋它。
相關問題
- 1. 在SQL Server中存儲MD5哈希
- 2. 如何在數據庫中存儲爲哈希創建的鹽?
- 3. 如何在哈希中存儲哈希哈希?
- 4. 普雷斯托MD5哈希在數據庫表的多個列
- 5. SQL 2005 MD5哈希和C#MD5哈希
- 6. C#MD5哈希Groovy的MD5哈希
- 7. 在哈希表中存儲txt數據
- 8. PHP MD5(MD5)哈希
- 9. 如何存儲在Derby數據庫哈希表
- 10. 在哈希存儲陣列
- 11. MD5和SHA1 C++哈希庫
- 12. 在哈希中存儲哈希
- 13. 。哈希如何在內存中存儲數據
- 14. 如何在Qt中創建MD5哈希?
- 15. 製作md5散列哈希
- 16. JavaScript MD5哈希與Java Applet MD5散列?
- 17. PHP MD5哈希
- 18. 如何在c#中存儲哈希表?
- 19. 在數據庫中存儲密碼哈希的未加密鹽
- 20. 替代使用哈希存儲密碼在數據庫中
- 21. 在數據庫字段中存儲一個ID的哈希值?
- 22. 在數據庫中存儲SHA512密碼哈希
- 23. 解密存儲在哈希碼數據庫中的密碼
- 24. 在局域網中存儲MD5哈希密碼
- 25. Perl中,存儲在哈希
- 26. 如何在Python中存儲列表的哈希表(由身份哈希)?
- 27. 解密md5哈希函數
- 28. 解密MD5哈希
- 29. SHA512和MD5哈希
- 30. MD5哈希更快
技術上,而不是十六進制-ING的字節數組,你可以BASE64它('Convert.ToBase64String(字節)'),並獲得24個字節的字符串。 – xanatos