阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Node.js crypto.randomBytes

      Node.js crypto.randomBytes(size[, callback])

      新增于: v0.5.8

      • size < number>
      • callback < Function>
        • err < Error>
        • buf < Buffer>

      生成加密强伪随机数据. size参数是指示要生成的字节数的数值。

      如果提供 callback回调函数 ,这些字节是异步生成的并且使用两个参数调用callback函数:err和buf。 如果发生错误, err是一个Error对象; 否则为null。buf参数是包含生成字节的Buffer。

      // Asynchronous
      const crypto = require('crypto');
      crypto.randomBytes(256, (err, buf) => {
        if (err) throw err;
        console.log(`${buf.length} bytes of random data: ${buf.toString('hex')}`);
      });
      

      如果未提供 callback回调函数, 则同步地生成随机字节并返回为Buffer。如果生成字节遇到问题,将会抛出一个错误。

      // Synchronous
      const buf = crypto.randomBytes(256);
      console.log(
        `${buf.length} bytes of random data: ${buf.toString('hex')}`);
      

      crypto.randomBytes()方法将在获得足够的熵之后完成。这通常不会超过几毫秒。只有在刚开机时才可能会阻塞更久,因为此时整个系统的熵不多。

      注意这个API使用libuv的线程池,所以在某些时候可能会产生意外的性能问题,查看UV_THREADPOOL_SIZE的文档以了解更多信息。

      Note: The asynchronous version of crypto.randomBytes() is carried out in a single threadpool request. To minimize threadpool task length variation, partition large randomBytes requests when doing so as part of fulfilling a client request.


      更多内容请参考:Node.js crypto 加密,或者通过 点击对应菜单 进行查看;


      目录
      本文目录
      目录