crypto.randomFill() মেথড এবং crypto.randomBytes() মেথড প্রায় একই। একমাত্র পার্থক্য হলো – randomFill() মেথডে প্রথম আর্গুমেন্টটি একটি বাফার যা পূরণ করা হবে। এছাড়া এর একটি কলব্যাক মেথড থাকে যা শুধু তখন কল হয় যখন এরর ঘটে এবং কলব্যাক কনফিগার করা থাকে।
সিনট্যাক্স
crypto.randomFill(buffer, [offset], [size], [callback])
প্যারামিটারসমূহ
buffer – এই ফিল্ডে ডেটা কন্টেন্ট থাকে। সম্ভাব্য বাফার টাইপ: string, TypedArray, Buffer, ArrayBuffer, DataView। বাফারের সাইজ 2**31-1-এর চেয়ে বড় হতে পারবে না।
offset – যে অফসেট থেকে randomFill শুরু হবে। ডিফল্ট ভ্যালু: 0।
size – অফসেটের পর বাফারের সাইজ। অর্থাৎ (buffer.length - offset)। এই ভ্যালু 2**31-1-এর চেয়ে বড় হতে পারবে না।
callback – এরর থ্রো হলে কল হওয়া ফাংশন।
উদাহরণ ১
randomFill.js নামে একটি ফাইল তৈরি করুন এবং নিচের কোড স্নিপেটটি কপি করুন। ফাইল তৈরি করার পর নিচের কমান্ড দিয়ে কোডটি রান করুন:
node randomFill.js
randomFill.js
// Node.js প্রোগ্রাম crypto.randomFill() মেথডের ফ্লো দেখানোর জন্য
// crypto মডিউল ইম্পোর্ট করুন
const crypto = require('crypto');
const fs = require("fs");
// বাফার বাইট ভ্যালু ইনিশিয়ালাইজ করুন
const buf = Buffer.alloc(6);
// বাফার এবং একটি কলব্যাক সহ randomFill মেথড কল করুন
crypto.randomFill(buf, (err, buf) => {
if (err) throw err;
// পূরণের পর বাফার ডেটা ভ্যালু প্রিন্ট করুন
console.log(buf.toString('ascii'));
});
// উপরে সংজ্ঞায়িত সব প্যারামিটার দিয়ে randomFill কল করুন
crypto.randomFill(buf, 3, 2, (err, buf) => {
if (err) throw err;
// বাফারে নতুন র্যান্ডম ডেটা প্রিন্ট করুন
console.log(buf.toString('base64'));
});
// নিচের ফাংশনের আউটপুট একই হবে
crypto.randomFill(buf, 3, 3, (err, buf) => {
if (err) throw err;
console.log(buf.toString('base64'));
});
আউটপুট
C:\home\node>> node randomFill.js f!]"+– ZqHdoit8 ZqHdoit8
উদাহরণ ২
আরেকটি উদাহরণ দেখি।
// Node.js প্রোগ্রাম crypto.randomFill() মেথডের ফ্লো দেখানোর জন্য
// crypto মডিউল ইম্পোর্ট করুন
const crypto = require('crypto');
const fs = require("fs");
// ডেটা ভিউ ব্যবহার করে বাফার বাইট ভ্যালু ইনিশিয়ালাইজ করুন
const data = new DataView(new ArrayBuffer(16));
// বাফার এবং একটি কলব্যাক সহ randomFill মেথড কল করুন
crypto.randomFill(data, (err, buf) => {
if (err) throw err;
// এনকোডিং সহ randomFill ডেটা প্রিন্ট করুন
console.log(Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength).toString('ascii'));
});
আউটপুট
C:\home\node>> node randomFill.js >h(Be#D8h0