crypto.createCipheriv() হল 'ক্রিপ্টো' মডিউল থেকে একটি প্রোগ্রামিং ইন্টারফেস। এটি প্রদত্ত অ্যালগরিদম, কী, iv এবং ফাংশনে পাস করা বিকল্পগুলি অনুসারে ডিসিফার অবজেক্ট তৈরি করবে এবং ফেরত দেবে।
সিনট্যাক্স
crypto.createDecipheriv(অ্যালগরিদম, কী, iv, [বিকল্প])
পরামিতি
উপরের পরামিতিগুলি নীচে −
হিসাবে বর্ণনা করা হয়েছে-
অ্যালগরিদম - এটি অ্যালগরিদমের জন্য ইনপুট নেয় যা সাইফার তৈরি করতে ব্যবহার করা হবে। কিছু সম্ভাব্য মান হল:aes192, aes256, ইত্যাদি।
-
কী - এটি কাঁচা কীটির জন্য ইনপুট নেয় যা অ্যালগরিদম এবং iv দ্বারা ব্যবহৃত হয়। সম্ভাব্য মান টাইপের হতে পারে:স্ট্রিং, বাফার, টাইপডঅ্যারে বা ডেটাভিউ। এটি ঐচ্ছিকভাবে গোপন টাইপের একটি টাইপ অবজেক্ট হতে পারে।
-
iv - প্রারম্ভিক ভেক্টর হিসাবেও পরিচিত। এই প্যারামিটারটি iv এর জন্য ইনপুট নেয় যা সাইফারটিকে অনিশ্চিত এবং অনন্য করে তুলবে। এটি একটি গোপন হতে হবে না. এর সম্ভাব্য মান প্রকারগুলি হল:স্ট্রিং, বাফার, টাইপডঅ্যারে, ডেটাভিউ। সাইফারের প্রয়োজন না হলে এটি শূন্য হতে পারে।
-
বিকল্পগুলি ৷ - এটি স্ট্রিম আচরণ নিয়ন্ত্রণ করার জন্য একটি ঐচ্ছিক পরামিতি। এটি ঐচ্ছিক নয় যখন সাইফার CCM বা OCB মোডে ব্যবহার করা হয় (যেমন 'aes-256-ccm')
উদাহরণ
নামের একটি ফাইল তৈরি করুন - createDecipheriv.js এবং নীচের কোড স্নিপেটটি অনুলিপি করুন। ফাইল তৈরি করার পরে, নীচের উদাহরণে দেখানো এই কোডটি চালানোর জন্য নিম্নলিখিত কমান্ডটি ব্যবহার করুন −
নোড createDecipheriv.js
createDecipheriv.js
// ECDH তৈরির জন্য একটি নোড ডেমো প্রোগ্রাম// ক্রিপ্টো মডিউলকনস্ট ক্রিপ্টো =প্রয়োজন('ক্রিপ্টো') আমদানি করা;// অ্যালগরিদমকনস্ট অ্যালগরিদম শুরু করা ='aes-192-cbc';// পাসওয়ার্ড কনস্টের সংজ্ঞা এবং আরম্ভ করা password ='123456789'// কীকনস্ট কী শুরু করা =crypto.scryptSync(পাসওয়ার্ড, 'TutorialsPoint', 24);// iv vectorconst সূচনা করা iv =Buffer.alloc(16, 0);// উপরের দিয়ে ডিসিফার তৈরি করা defined parametersconst decipher =crypto.createDecipheriv(algorithm, key, iv);let decrypted ='';// datadecipher.on('readable', () => { লেট খণ্ড; যখন (null !==( chunk =decipher.read()) { decrypted +=chunk.toString('utf8'); }});//ক্লোজিং/এন্ড ইভেন্টডেসিফার.on('end', () => { console.log( ডিক্রিপ্ট করা;});// এনক্রিপ্ট করা ডেটা যা decryptedconst encrypted ='uqeQEkXy5dpJjQv+JDvMHw==';// প্রিন্ট করা ডিক্রিপ্ট করা textdecipher.write(এনক্রিপ্ট করা, 'base64');(decipher)। লগ("সম্পূর্ণ...!");
আউটপুট
C:\home\node>> node createDecipheriv.jsসম্পূর্ণ... !TutorialsPoint
উদাহরণ
আসুন আরও একটি উদাহরণ দেখি।
// ECDH তৈরির জন্য একটি নোড ডেমো প্রোগ্রাম// ক্রিপ্টো মডিউলকনস্ট ক্রিপ্টো =প্রয়োজন('ক্রিপ্টো') আমদানি করা;// অ্যালগরিদমকনস্ট অ্যালগরিদম শুরু করা ='aes-256-cbc';// পাসওয়ার্ড কনস্টের সংজ্ঞা এবং আরম্ভ করা password ='123456789'// কীকনস্ট কী শুরু করা =crypto.randomBytes(32);// iv vectorconst সূচনা করা iv =crypto.randomBytes(16);// ডেটা ফাংশন এনক্রিপ্ট করতে এনক্রিপ্ট ফাংশন এনক্রিপ্ট (টেক্সট) {// তৈরি করা উপরের সংজ্ঞায়িত প্যারামিটার সহ সাইফার =crypto.createCipheriv('aes-256-cbc', Buffer.from(key), iv);// এনক্রিপ্ট করা পাঠ্য আপডেট করা হচ্ছে... এনক্রিপ্ট করা =cipher.update(টেক্সট); // concatenationencrypted =Buffer.concat([encrypted, cipher.final()] ব্যবহার করা;// এনক্রিপ্ট করা ডেটা রিটার্ন { iv:iv.toString('hex'), encryptedData:encrypted.toString(' সহ iv ভেক্টর রিটার্ন করা hex') };}//ডেটাফাংশন ডিক্রিপ্ট করার জন্য ডিক্রিপ্ট ফাংশন ডিক্রিপ্ট(টেক্সট) {let iv =Buffer.from(text.iv, 'hex');let encryptedText =Buffer.from(text.encryptedData, 'hex');// অ্যালগো, কী এবং আইভলেট ডিসিফার =crypto.createDecipheriv('aes-256-cbc', Buffer.from(key), iv) থেকে পাঠোদ্ধার তৈরি করা;// ডিক্রিপ্ট করা টেক্সলেট আপডেট করা হচ্ছে ডিক্রিপ্টেড =decipher.update(এনক্রিপ্টেড টেক্সট); decrypted =Buffer.concat([decrypted, decipher.final()]);// decryptionreturn decrypted.toString();}// নিচের ডেটা এনক্রিপ্ট করা এবং outputvar output =encrypt("TutorialsPoint-এ স্বাগতম!" );console.log("এনক্রিপ্ট করা ডেটা -- ", আউটপুট);//প্রিন্টিং ডিক্রিপ্ট করা dataconsole.log("ডিক্রিপ্ট করা ডেটা -- ", ডিক্রিপ্ট(আউটপুট));
আউটপুট
C:\ HOME \ নোড>> {IV:'3FB2C84290E04D9BFB099BC65A04D9BFB099BC65A7AC941'