在我的用戶數據庫表中,我將用戶的電子郵件地址的MD5散列作爲id。將MD5散列表示爲整數
實施例:email([email protected]) = id(d41d8cd98f00b204e9800998ecf8427e)
不幸的是,我要表示的ID作爲整數值現在 - 爲了能夠使用的API,其中ID只能是整數。
現在我正在尋找一種方法來將id編碼爲整數,以便在接收時再次發送解碼。我怎麼能這樣做?
我的想法而已:
- 的MD5哈希
- 替換MD5哈希值的每一個字符
convert_uuencode()
和convert_uudecode()
其ord()
值
哪種方法更好?你知道更好的方法來做到這一點嗎?
我希望你能幫助我。非常感謝您提前!
你有沒有其他的,可能是實習生,值識別您的用戶?那麼,你的用戶表至少應該有一個PK。 – Malax 2009-09-14 17:10:57
@Malax:是的,主鍵是包含MD5哈希的id字段。這是一個不好的解決方案? – caw 2009-09-14 17:24:16
使用MD5散列作爲用戶表的主鍵通常不是一個好主意。自動遞增/串行整數ID是4-8字節。一個md5散列是32個字節。整數值比較(例如每次加入該表或從中選擇一行)將比比較32字節字符串快許多倍,並且整數值將需要較少的存儲空間。真的...如果你想使用字符串值,爲什麼不使用電子郵件地址本身?在大多數情況下,這將是32個字節或更少。 – 2009-09-14 17:50:16