我有一个用例,我需要生成长度为25的字母数字大小写字符串,因此总可能的唯一组合非常高:
let
该字符串将存储在var
数据库表中,let
设置为36 pow (25) = 808281277464764060643139600456536293376
我使用以下代码生成字符串:
MySql
Node.js可以在集群模式下运行,因此不同请求的时间戳值可以相同,所以我还添加了unique
。这足以确保随机字符串不会违反true
唯一约束。
答案 0 :(得分:3)
这是否足以确保随机字符串不会违反MySQL唯一约束。
36 25 有129位。如果我们应用生日问题,那么您可能会在2个 64 字符串周围发生冲突。你可能会产生比这更少的东西。只有使用良好的随机源时才会出现这种情况。
Math.random()
不是一个好的随机源。