怎么把 uuid 进行 Base36 编码
发布于 5 年前 作者 xuxu7 5336 次浏览 来自 问答

使用 Browser JavaScript 生成 uuid 作为文件名,由于太长,想要通过 Base36 缩短。思路是先把 uuid 转换成 BigInt,然后再 bigInt.toStirng(36)。 但问题是:

  1. 怎么把 uuid 转成 BigInt
  2. 还要解决浏览器不支持 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);

上面是简易方法,生成的长度是不一样的。

回到顶部