📜  生成随机 base 64 字符串 js - Javascript (1)

📅  最后修改于: 2023-12-03 14:56:17.090000             🧑  作者: Mango

生成随机 base64 字符串

在前端开发中,我们可能需要使用随机的 base64 字符串作为数据存储的 key,或者作为加密算法的一部分。那么如何在 JavaScript 中生成随机的 base64 字符串呢?下面是几种实现方式。

方法一:使用 Crypto API

在现代浏览器中,我们可以使用 Crypto API 中的 getRandomValues 方法来生成随机数。接着将生成的随机数通过 ArrayBuffer 转换为 base64 字符串即可。

function generateRandomBase64(length) {
  const array = new Uint8Array(length);
  window.crypto.getRandomValues(array);
  const base64 = btoa(String.fromCharCode(...array));
  return base64;
}
  • length:生成字符串的长度。

返回的是生成的 base64 字符串。

方法二:使用 Math.random

如果无法使用 Crypto API,我们也可以使用 Math.random 生成随机数。接着使用 ArrayBuffer 转换为 base64 字符串。

function generateRandomBase64(length) {
  const array = new Uint8Array(length);
  for (let i = 0; i < length; i++) {
    array[i] = Math.floor(Math.random() * 256);
  }
  const base64 = btoa(String.fromCharCode(...array));
  return base64;
}
  • length:生成字符串的长度。

返回的是生成的 base64 字符串。

方法三:使用 uuid

如果需要生成的 base64 字符串长度为 22,即为一个 uuid,我们可以直接使用 uuid 库中的方法生成。

import { v4 as uuidv4 } from 'uuid';

function generateRandomBase64() {
  const uuid = uuidv4();
  const base64 = btoa(uuid.replace(/-/g, '').substr(0, 16));
  return base64;
}

返回的是生成的 base64 字符串。

总结

以上就是几种生成随机 base64 字符串的方法,其中使用 Crypto API 可以获得更高的安全性和效率。但如果不需要高安全性和效率可以使用 Math.random,如果需要生成 uuid,则可以直接使用 uuid 库。