如何在 node.js 中生成随机数?

How to generate a nonce in node.js?

我需要生成一个随机数(只生成一次的数字)来删除 CSP 规则 'unsafe-inline' 和所有受信任的脚本 URL,从而提高 CSP 分数。因此我需要在 HTML

<script nonce="{{{nonce}}}" src="http://example.com/file.js">

我知道随机数必须是唯一的,其计算方法几乎无法预测,它应该至少有 128 位(因此 16 字节),并以 base64 编码。因此,node.js 是否正确?

const crypto = require('crypto');
let nonce = crypto.randomBytes(16).toString('base64');

只是为了确认这在 NodeJS 中确实适用于 CSP 随机数

const crypto = require('crypto');
let nonce = crypto.randomBytes(16).toString('base64');

我建议为此使用 uuidhttps://www.npmjs.com/package/uuid

每个 uuid 恰好是 16 字节(128 位),与生成 uuid 碰撞相比,您的计算机被流星击中的可能性更高。