13 lines
458 B
JavaScript
13 lines
458 B
JavaScript
// 激活码生成:16 位、4 组、80 位随机
|
|
// 字符表去掉了容易看错的 I/L/O/U,正好 32 个,刚好整除 256,取模不偏
|
|
const crypto = require('crypto')
|
|
|
|
const ALPHABET = '0123456789ABCDEFGHJKMNPQRSTVWXYZ'
|
|
|
|
function newActivationCode() {
|
|
const raw = Array.from(crypto.randomBytes(16), (b) => ALPHABET[b % ALPHABET.length]).join('')
|
|
return (raw.match(/.{4}/g) || []).join('-')
|
|
}
|
|
|
|
module.exports = { newActivationCode, ALPHABET }
|