您在应用程序上工作了多少次,您需要一个随机的alpha数字字符串?您是否尝试在字符串中提供数字和字符的列表,然后将长度传递以随机生成带循环的字符串?
使用node.js,这可以简单得多。您只需要使用内置的加密库。
const { randomBytes } = require(“node:crypto”);
function randomString(length) {
if (length % 2 !== 0) {
length++;
}
return randomBytes(length / 2).toString("hex");
}
const string = randomString(8);
// string = "df5ec630"
这几个问题是传递给RandomBytes方法的长度需要是一个偶数数字,因此可以将其分为一半。否则,返回的字符串将是传递长度的两倍。这就是为什么条件是该功能的一部分。
作为奖励,如果您只需快速需要一个随机字符串即可在应用程序之外使用,则可以进入终端,键入node进入repl,然后添加require('node:node:cryptoâ ).randombytes(8).tostring(hex)。
node
Welcome to Node.js v20.4.0.
Type ".help" for more information.
> require('node:crypto').randomBytes(8).toString('hex')
'568b6620639fdf54'
如果您想生成一个随机字符串而不进入repl,则可以使用以下内容:
node -e “console.log(require(‘node:crypto’).randomBytes(8).toString(‘hex’))”
在Mac上,您甚至可以添加| pbCopy到命令将字符串副本直接放在剪贴板上。
node -e “console.log(require(‘node:crypto’).randomBytes(8).toString(‘hex’))” | pbcopy
请记住,当使用终端或repl的命令时,传递到RandomyBytes的长度将是输出的长度的一半。因此,如果您需要8个字符的随机字符串,请通过4个长度。
我希望这个快速的提示很有帮助。如果您看到上述代码的任何优化,或者是否有一种更简单的方法来生成随机字符串。
是否有任何优化。感谢您的阅读!