js生成一个安全的随机字母数字Base-62字符串

该代码片段展示了如何利用JavaScript的window.crypto.getRandomValues方法生成符合密码学安全性的随机值,结合btoa进行编码,创建出一个指定长度的唯一标识符。这个方法常用于创建不可预测的ID,确保数据的安全性和隐私。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考链接: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"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值