当用唯一编号播种时,随机库的样本方法是否唯一?

时间:2014-06-14 14:22:34

标签: python random unique random-sample

我的代码块下面应生成随机唯一字符串。是否使用了随机安全的样本方法呢?

def generate_voucher_code_string(length=13):
    rand = random.Random()
    rand.seed(get_seq(VOUCHER_CODE_SEQ_KEY))
    return ''.join(rand.sample(VOUCHER_CODE_CHARS, length))

注意:get_seq方法每次调用时都会返回不同的数字。

1 个答案:

答案 0 :(得分:2)

否则随机模块可能会为不同的种子生成相同的输出。其概率取决于所使用的算法。

你可能想要的是uuid模块,它根据哈希产生RFC 4122个通用唯一标识符。哈希值通常很大,以至于非唯一性的概率可以忽略不计。