2015-11-23 122 views
1

我們使用這個功能來生成GUID的,並分配給記錄:的Javascript:GUID碰撞

var genguid = function b(a) { 
    return a ? (a^Math.random() * 16 >> a/4).toString(16) : ([1e6] + '').replace(/[018]/g, b) 
} 

的問題是,我們已經開始得到重複,從多個設備。

隨機部分可以使用鹽,可能從當前時間或位置(因爲它們用於移動設備)。

有關使用什麼函數/方法獲取的建議?

更新: 代碼在使用JS的移動應用程序上運行。我只用1萬億的GUID運行舊代碼,沒有重複。所以我猜這是在移動客戶端上的JS實現的東西?

+1

爲什麼會生成一個GUID取決於傳入的參數?在沒有傳入'a'的情況下,它看起來並不是「全球唯一」...... – spender

+2

聽起來很像[本文](https://medium.com/@betable/ tifu按使用-數學隨機f1c308c4fd9d)。一個可能的解決方案在這裏描述(http://stackoverflow.com/a/2117523/893780)(_「Modern Browsers」_)。 – robertklep

+0

這是有趣的部分。該代碼運行在使用JS的移動應用程序上。我只用1萬億的GUID運行舊代碼,沒有重複。所以我猜這是在移動客戶端上的JS實現的東西? – R0b0tn1k

回答