常见随机码类型
| 类型 | 格式 | 位数 | 安全性 |
|---|---|---|---|
| PIN码 | 纯数字 | 4-6位 | 低 |
| 验证码 | 纯数字 | 4-6位 | 中 |
| 邀请码 | 字母+数字 | 6-8位 | 中 |
| 订单号 | 日期+随机 | 16-24位 | 高 |
| API Token | 全字符集 | 32-64位 | 很高 |
订单号设计方案
- 时间戳 + 自增序号:20260322143025 + 000001
- 前缀 + 时间戳 + 随机数:ORD + 20260322 + 143025 + 0001
- UUID:550e8400-e29b-41d4-a716-446655440000
- 雪花算法:时间戳 + 机器ID + 序列号(19位数字)
安全注意事项
- 使用加密安全的随机数:Math.random()不安全,应使用crypto.getRandomValues()
- 排除易混淆字符:0/O、1/l/I、2/Z 等容易看错
- 设置有效期:验证码通常5-15分钟过期
- 限制尝试次数:防止暴力破解
- 足够长度:安全用途至少16位混合字符
JavaScript安全随机数
// 安全随机数(推荐)
const arr = new Uint32Array(1);
crypto.getRandomValues(arr); // 0 ~ 2^32-1
// 生成安全随机字符串
function secureRandom(len) {
const chars = 'ABCDEFGHJKMNPQRSTUVWXYZ23456789';
const arr = new Uint32Array(len);
crypto.getRandomValues(arr);
return Array.from(arr, n => chars[n % chars.length]).join('');
}
在线随机字符串生成器
使用我们的随机字符串生成器,自定义字符集和长度,一键生成订单号、验证码、邀请码。