Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

เมธอด crypto.randomBytes() ใน Node.js

เมธอด crypto.randomBytes() สร้างข้อมูลสุ่มแบบ cryptographically strong pseudo-random จะรอจนกว่าจะมี entropy เพียงพอ (ไม่เกินไม่กี่มิลลิวินาที) ใช้สร้าง random bytes สำหรับ key, iv, salt ฯลฯ

ไวยากรณ์

crypto.randomBytes(size, [callback])

พารามิเตอร์

  • size – จำนวนไบต์ที่จะสร้าง (ต้องไม่เกิน 2³¹ - 1)
  • callback – callback เมื่อเกิดข้อผิดพลาด (สำหรับโหมด asynchronous)

ตัวอย่าง: Asynchronous

const crypto = require('crypto');

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

ผลลัพธ์

64 bytes of random data: eb2bcebb999407286caea729998e7fa0c089178f8ca43857e73ea3ff66dbe1852af24a4b0199be9192798a3f8ad6d6475db3621cfacf38dcb0fba5d77d73aaf5

ตัวอย่าง: Synchronous

const crypto = require('crypto');
const buffer = crypto.randomBytes(256);
console.log(`${buffer.length} bytes of random data: ${buffer.toString('base64')}`);

ผลลัพธ์

256 bytes of random data: n7yfRMo/ujHfBWSF2VFdevG4WRbBoG9Fqwu51+/9ZBUV6Qo88YG7IbcEaIer+g+OgjMv4RyNQ6/67aF5xWmkOR3oA6J6bdAJ1pbstTuhIfItF1PQfP26YXk1QlaoKy/YJxPUngyK4kNG9O04aret4D+2qIq9BUaQcv+R9Xi014VKNUDZ+YQKEaLHBhJMq6JgehJ56iNbdNJ4+PN7SQwjNdZ8gS76izAwYsSZ7Kuyx2VzdXIKsLmjleuJ2DZ7/6Yyn8WM9463dhuh0KQ5nwFbgzucvjmdvDjBlGFZBGlKs6AXqYh+0Oe6Ckkv3OpnXOJs+GExbmnvjaeDQ03khpdJfA==