📅  最后修改于: 2023-12-03 15:33:08.511000             🧑  作者: Mango
crypto.randomBytes(size[, callback])
是 Node.js 中的一个内置方法,用于生成指定大小的加密强度的随机字节序列。
const crypto = require('crypto');
// 生成一个随机8字节的 Buffer
const randomBytes = crypto.randomBytes(8);
console.log(randomBytes.toString('hex'));
// 打印出类似于 "f0877c24cd499ec9" 的16进制字符串
const crypto = require('crypto').promises;
// 等价于:
// const { promises: crypto } = require('crypto');
(async () => {
// 通过 Promise 生成一个随机16字节的 Buffer
const randomBytes = await crypto.randomBytes(16);
console.log(randomBytes.toString('hex'));
// 打印出类似于 "578cd2abfb2e5416a56670793c36417b" 的16进制字符串
})();
const crypto = require('crypto');
// 生成一个随机24字节的 Buffer
crypto.randomBytes(24, (err, buffer) => {
if (err) throw err;
console.log(buffer.toString('hex'));
// 打印出类似于 "fcf3a1ba34d3c0872c10c3618bbeedb67815d36bcac9c070" 的16进制字符串
});
size
(必选):表示生成随机字节数的大小,可以是任意非负整数。callback
(可选):表示回调方法,当生成字节序列完成时将调用该函数。crypto.randomBytes()
方法生成的字节序列是加密强度的,应该比使用 Math.random()
或人为构造序列更安全。Node.js 的 crypto.randomBytes()
方法是一个生成加密强度的随机字节序列的内置方法。它支持 Promise 和回调两种方式。使用时应该注意正确使用所生成的字节序列,并注意内存限制。