Javascript
在 JS 中生成隨機 uint256 數字
我需要在鏈下生成一個 uint256 隨機數(在 Node.js 客戶端中)。既然
BN
沒有random()
功能,那麼最好的方法是什麼?
您可以使用 Node.js’
crypto.randomBytes
生成加密安全的隨機數:import { randomBytes } from 'crypto'; import BN from 'bn.js'; const value = randomBytes(32); // 32 bytes = 256 bits // Value as native bigint const bigInt = BigInt(`0x${value.toString('hex')}`); // Value as BN.js number const bn = new BN(value.toString('hex'), 16);
如果你有 web3,你可以使用web3 -utils 中的 randomHex。
web3.utils.randomHex(32) > "0xa5b9d60f32436310afebcfda832817a68921beb782fabf7915cc0460b443116a"