我正在創建一個程序,生成每個包含10個字母數字字符的唯一代碼,但我想知道是否有一個有效的算法。我使用random.choice
函數來確定這些代碼是否已經存在於列表中,但這樣效率很低。獨特的固定長度代碼的高效生成
我已經研究了帶有SHA1索引的哈希,所以沒有發生衝突。但是,生成的哈希碼不具有十個字符的固定長度。我怎麼能做同樣的產生10個字符的結果?請不要建議切片。這會增加碰撞的機會。
我正在創建一個程序,生成每個包含10個字母數字字符的唯一代碼,但我想知道是否有一個有效的算法。我使用random.choice
函數來確定這些代碼是否已經存在於列表中,但這樣效率很低。獨特的固定長度代碼的高效生成
我已經研究了帶有SHA1索引的哈希,所以沒有發生衝突。但是,生成的哈希碼不具有十個字符的固定長度。我怎麼能做同樣的產生10個字符的結果?請不要建議切片。這會增加碰撞的機會。
你需要多少個代碼?你是否事先知道你需要多少? –
@StefanPochmann不,客戶端將輸入要生成的代碼數量。 –
爲什麼「不」?那麼你在生成它們之前確實有這個數字,不是嗎? –