生成一個唯一的ID我想要實現類似Imgur一個節能系統,其中,如果用戶按下一個按鈕返回了獨特的5字符值。以下是我迄今爲止:在Javascript
數據庫後端使用自動遞增的ID開始在5308416
。我使用修改後的基數函數(見下文)將這些數字ID轉換爲字符。我使用反向函數來查找字符ID的數字數據庫ID。
function genID (value)
{
var alphabet = "23456789BCDFGHJKLMNPRSTVWXYZbcdfghjkmnpqrstvwxyz";
var result = "";
var length = alphabet.length;
while (value > 0)
{
result = alphabet[value % length] + result;
value = Math.floor (value/length);
}
return result;
}
問題是這些生成的ID是非常可預測的。我的問題是,如何讓生成的ID看起來像隨機但仍然是唯一的(所以我可以將它們作爲數字在數據庫中查找)。我正在考慮使用一些加密算法,但不知道從哪裏開始。任何幫助或建議,將不勝感激(也許有更好的方式做這也是)。
使用時間,它是獨一無二的,永遠不會重複! – zizoujab 2012-08-15 01:56:33
除了當時鍾手動更改,或DST和其他一秒的飛躍...... – 2012-08-15 01:58:14
會自動調整** Zied Jaballah **說,我想時間應該這樣做'變種的uniq =(新日期).getTime( );' – elclanrs 2012-08-15 02:01:25