কম্পিউটার

Node.js-এ crypto.createCipheriv() পদ্ধতি


crypto.createCipheriv() পদ্ধতিটি প্রথমে প্রদত্ত কী এবং অনুমোদন ফ্যাক্টর (iv) এর জন্য পাস করা অ্যালগরিদম অনুযায়ী সাইফার অবজেক্ট তৈরি করবে এবং ফেরত দেবে।

সিনট্যাক্স

crypto.createCipheriv(algorithm, key, iv, options)

পরামিতি

উপরের পরামিতিগুলি নীচে −

হিসাবে বর্ণনা করা হয়েছে
  • অ্যালগরিদম - এটি অ্যালগরিদমের জন্য ইনপুট নেয় যা সাইফার তৈরি করতে ব্যবহার করা হবে। কিছু সম্ভাব্য মান হল:aes192, aes256, ইত্যাদি।

  • কী - এটি কাঁচা কীটির জন্য ইনপুট নেয় যা অ্যালগরিদম এবং iv দ্বারা ব্যবহৃত হয়। সম্ভাব্য মান টাইপের হতে পারে:স্ট্রিং, বাফার, টাইপডঅ্যারে বা ডেটাভিউ। এটি ঐচ্ছিকভাবে গোপন টাইপের একটি টাইপ অবজেক্ট হতে পারে।

  • iv - প্রারম্ভিক ভেক্টর হিসাবেও পরিচিত। এই প্যারামিটারটি iv এর জন্য ইনপুট নেয় যা সাইফারটিকে অনিশ্চিত এবং অনন্য করে তুলবে। এটি একটি গোপন হতে হবে না. এর সম্ভাব্য মান প্রকারগুলি হল:স্ট্রিং, বাফার, টাইপডঅ্যারে, ডেটাভিউ। সাইফারের প্রয়োজন না হলে এটি শূন্য হতে পারে।

  • বিকল্পগুলি ৷ - এটি স্ট্রিম আচরণ নিয়ন্ত্রণ করার জন্য একটি ঐচ্ছিক পরামিতি। এটি ঐচ্ছিক নয় যখন সাইফার CCM বা OCB মোডে ব্যবহার করা হয় (যেমন 'aes-256-ccm')

উদাহরণ

নামের একটি ফাইল তৈরি করুন – createCipheriv.js এবং নীচের কোড স্নিপেটটি অনুলিপি করুন। ফাইল তৈরি করার পরে, নীচের উদাহরণে দেখানো এই কোডটি চালানোর জন্য নিম্নলিখিত কমান্ডটি ব্যবহার করুন −

node createCipheriv.js

createCipheriv.js

// A node demo program for creating the ECDH

// Importing the crypto module
const crypto = require('crypto');

// Initializing the algorithm
const algorithm = 'aes-256-cbc';

// Initializing the key
const key = crypto.randomBytes(32);

// Initializing the iv vector
const iv = crypto.randomBytes(16);

// Creating the function to encrypt data
function encrypt(text) {

// Creating the cipher with the above defined parameters
let cipher = crypto.createCipheriv(
   'aes-256-cbc', Buffer.from(key), iv);

let encrypted = cipher.update(text);

encrypted = Buffer.concat([encrypted, cipher.final()]);

// Returning iv and the encrypted data
return { iv: iv.toString('hex'),
   encryptedData: encrypted.toString('hex') };
}
// Printing public & private curve keys...
var output = encrypt("TutorialsPoint");
console.log(output);

আউটপুট

C:\home\node>> node createCipheriv.js
{ iv: '3dd899aa441c00d4d8d2ff95abb2e684',
encryptedData: 'b4985053bc1507fc25a4d99823dc8b03' }

উদাহরণ

আসুন আরও একটি উদাহরণ দেখি।

// A node demo program for creating the ECDH

// Importing the crypto module
const crypto = require('crypto');

// Initializing the algorithm
const algorithm = 'aes-192-cbc';

// Defining and initializing the password
const password = '123456789'

// Initializing the key
const key = crypto.scryptSync(password, 'TutorialsPoint', 24);

// Initializing the iv vector
const iv = Buffer.alloc(16, 0);

// Creating the cipher with the above defined parameters
const cipher = crypto.createCipheriv(algorithm, key, iv);

let encrypted = '';

// Reading and encrypting the data
cipher.on('readable', () => {
   let chunk;
   while (null !== (chunk = cipher.read())) {
      encrypted += chunk.toString('base64');
   }
});

//Handling the closing/end event
cipher.on('end', () => {
   console.log(encrypted);
});

// Printing public & private curve keys...
cipher.write('TutorialsPoint');
cipher.end();
console.log("Completed... !");

আউটপুট

C:\home\node>> node createCipheriv.js
Completed... !
uqeQEkXy5dpJjQv+JDvMHw==

  1. Node.js-এ crypto.publicDecrypt() পদ্ধতি

  2. Node.js-এ crypto.privateEncrypt() পদ্ধতি

  3. Node.js-এ crypto.privateDecrypt() পদ্ধতি

  4. Node.js-এ crypto.getHashes() পদ্ধতি