Random String Generator
One input per line. Output is numbered to match the input order.
Pinned tools are listed in your favourites on the home page.Copies a link to this tool that carries your current input, so it opens ready to run.Gives you an iframe snippet for putting this tool on your own site.
Ctrl+Enter Run · Ctrl+Shift+C Copy · Esc Clear
Understand Random String Generator
从你选定的字符集中生成指定长度的密码学随机字符串。
How it works
取值来自 crypto.getRandomValues,即平台的密码学安全生成器,而不是 Math.random——后者的内部状态可以由少数几次观察到的输出恢复出来,进而预测其未来取值。强度就是熵,每个字符贡献 log2(字母表大小) 位:32 个十六进制字符携带 128 位,而 62 个符号的字母数字集中的 32 个字符约携带 190 位。
When to use it
- 生成 API 密钥、会话密钥或 webhook 签名密钥。
- 为本地 .env 文件产生 SECRET_KEY 或 JWT_SECRET 的值。
- 创建一次性的随机数、盐值或邀请码。
- 为不允许冲突的存储桶、容器或测试资源名称生成随机后缀。
- 填充需要特定长度和形态的不透明令牌的夹具。
Watch out for
- 长度必须结合字母表来看。16 个十六进制字符只有 64 位,在意志坚定的攻击者面前触手可及,而 62 个符号集中的 16 个字符约为 95 位。凡是长期使用的值,都请以 128 位以上为目标。
- 随机不等于唯一。两次独立抽取可能重合,因此当这个值用作主键或文件名时,请改用 UUID 或 ULID,或者检查是否冲突,而不要想当然。
- 受限字符集的存在是有原因的。将出现在 URL、shell 命令或 .env 文件中的值,应当避开需要加引号或转义的字符——十六进制和字母数字走到哪里都不会出意外。
- 在浏览器标签页里生成的东西,就是在浏览器标签页里待过。对于生产环境的签名密钥,请优先使用 openssl rand -base64 32 或你所在平台已提供的密钥管理服务,那里的值不会接触页面、剪贴板管理器或浏览器历史。
Not the right tool for: 必须是确切字节数随机值的密钥。AES 密钥或 HMAC 密钥是二进制的,32 个字符的十六进制字符串只有 16 字节的熵而不是 32 字节——请生成原始字节,或用 KDF 派生密钥。
Frequently Asked Questions
如何生成随机字符串?
设置长度、选择要生成多少条,并勾选要从中抽取的字符集——或者粘贴自定义字母表,例如用于十六进制的 0123456789abcdef。点击生成即可一次性复制整批结果。一切都在你的浏览器本地产生。
这个随机字符串生成器安全吗?
字符来自 crypto.getRandomValues,即浏览器的密码学安全随机源,并通过拒绝采样挑选,因此没有哪个字符比其他字符更容易出现。工具从不使用 Math.random——它可被预测,不适合用于令牌、密钥或密码。
随机字符串该有多长?
工具会显示以位为单位的熵。大致而言:64 位对标识符已经够用,而 API 密钥或会话令牌之类的机密内容需要 128 位以上。22 个字母数字字符大约携带 128 位。
How to Use Random String Generator
- Paste or type your input in the input area above.
- The tool processes your input automatically or click Run.
- Copy or download the result using the action buttons.
- Use Ctrl+Enter to run quickly from the keyboard.