怎么把 uuid 进行 Base36 编码
使用 Browser JavaScript 生成 uuid 作为文件名,由于太长,想要通过 Base36 缩短。思路是先把 uuid 转换成 BigInt,然后再 bigInt.toStirng(36)。 但问题是:
- 怎么把 uuid 转成 BigInt
- 还要解决浏览器不支持 BigInt 类型的问题。
还有更便捷的方法吗?
4 回复
直接 nanoid https://github.com/ai/nanoid 或者根据文件的md5 或者 sha256
@zuohuadong 需要浏览器端 js 生成安全的、不可猜测的唯一编码,nanoid 依赖 crypto/msCrypto,IE11 前的浏览器不支持。
其实可以自己生成一个合适大小的随机integer,然后用 toString(36) ,长度不够可以搞多次,拼接起来就行了。
@my 谢谢提供思路:
let array = new Uint32Array(1);
window.crypto.getRandomValues(array);
const filename = array[0].toString(36);
上面是简易方法,生成的长度是不一样的。