参考链接:https://mp.weixin.qq.com/s/1MHR6_kNRPNt2duU4q5Pqw
function generateUID(length)
{
return window.btoa(Array.from(window.crypto.getRandomValues(new Uint8Array(length * 2)))
.map((b) => String.fromCharCode(b)).join("")).replace(/[+/]/g, "")
.substring(0, length);
}
/*
window.btoa 编码字符串,字符串需要是一个二进制的字符串
crypto.getRandomValues 获取符合密码学要求的安全的随机值 : https://developer.mozilla.org/zh-CN/docs/Web/API/Crypto/getRandomValues
String.fromCharCode 可接受一个指定的 Unicode 值,然后返回一个字符串
Uint8Array 表示一个8位无符号整型数组,创建时内容被初始化为0
*/
console.log(generateUID(22)); // "cFg3Upv2cE5cK8Xd7hHwWp"
console.log(generateUID(5)); // "CAGkP"