使用Javascript生成唯一的随机字符串

Generate unique random string with Javascript

本文关键字:随机 字符串 唯一 Javascript 使用      更新时间:2023-09-26

我正在创建一个应用程序,有时需要允许用户生成一些随机字符串。我想强制以以下格式生成:

xxxx-xxxx-xxxx

其中"x"是某个数字[0-9]或字符[A-Z]。最有效的方法是什么?生成时,我还需要检查它是否已经存在于数据库中,所以我有点担心它需要花费的时间。

我们可以让它像一样简单

require("crypto").randomBytes(64).toString('hex')

您可以使用加密库。

var crypto = require('crypto');
//function code taken from http://blog.tompawlak.org/how-to-generate-random-values-nodejs-javascript
function randomValueHex (len) {
    return crypto.randomBytes(Math.ceil(len/2))
        .toString('hex') // convert to hexadecimal format
        .slice(0,len).toUpperCase();   // return required number of characters
}
var string = randomValueHex(4)+"-"+randomValueHex(4)+"-"+randomValueHex(4);
console.log(string);

检查这些线程:在JavaScript 中生成随机字符串/字符

您可以检查数据库中是否存在该字段。如果是,只需生成一个新的令牌。然后再次检查。如果你没有庞大的用户群,它存在的可能性真的很低。因此,长循环检查的概率也很低。