我有一個想法。這可能是不好的,因爲我不知道的原因,但我真的很感激你對此的反饋!會話ID,UUID和GUID和一般ID的一般
我們已經在PHP項目中使用了會話ID。而且在4年來第一次生成了重複的sessionid。幸運的是,我隨機決定查看客戶表,因爲我感到無聊,並且注意到sessionid列中有一個重複的條目,並在發生任何實際問題之前對其進行了更改並對其進行了引用。
而導致(或導致?)我問自己這個問題:
基本上,任何類型的ID,無論是會話ID,uuid或GUID最終能夠被複制,因爲它們的長度並不是無限。於是我開始思考,因爲我們不希望這種情況再次發生。
我想,如果我們使用日期和時間的組合作爲標識符?這不會是「隨機的」,但它可以解決重複問題。例如:
14th of May 2011 04:36:05PM
如果用作一個標識符,可改爲:
14052011163605
這種形式的ID的永遠不會成爲複製的原因是因爲沒有日期,隨着時間的推移在未來組合將永遠與過去或現在一樣。
因爲在我們的情況下,這些身份證並不是任何人都可以看到的,所以沒有理由是隨機的,是嗎?
我很想聽聽你對此的想法,以及你如何處理這種情況。什麼是生成[實際上]唯一ID的最佳方法?
當您處理會話ID時,您需要關注技術。爲您添加了PHP標籤。 – 2011-06-01 21:37:41
謝謝@Gregory – Lucifer 2011-06-01 21:39:55
您是否確定創建了重複的會話ID?我認爲還有一些額外的檢查可以防止這種情況發生,而不僅僅是隨機數發生器。你確定它不是從兩個賬戶登錄和登出的用戶嗎? – 2011-06-01 21:40:46