📅  最后修改于: 2023-12-03 14:56:17.090000             🧑  作者: Mango
在前端开发中,我们可能需要使用随机的 base64 字符串作为数据存储的 key,或者作为加密算法的一部分。那么如何在 JavaScript 中生成随机的 base64 字符串呢?下面是几种实现方式。
在现代浏览器中,我们可以使用 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 字符串。
如果无法使用 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 字符串。
如果需要生成的 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 库。