কম্পিউটার টিউটোরিয়াল

Node.js-এ crypto.privateDecrypt() মেথড

Node.js-এ crypto.privateDecrypt() মেথডটি প্যারামিটারে দেওয়া প্রাইভেট কী ব্যবহার করে দেওয়া ডেটা কন্টেন্ট ডিক্রিপ্ট করতে ব্যবহৃত হয়, যা আগে সংশ্লিষ্ট পাবলিক কী দিয়ে crypto.publicEncrypt() মেথড ব্যবহার করে এনক্রিপ্ট করা ছিল।

সিনট্যাক্স

crypto.privateDecrypt(privateKey, buffer)

প্যারামিটারসমূহ

  • key – এতে নিচের ৫ টাইপের ডেটা থাকতে পারে: Object, String, Buffer বা KeyObject।

    • oaepHash – OAEP প্যাডিং এবং MGF1-এর জন্য ব্যবহৃত হ্যাশ ফাংশন। ডিফল্ট ভ্যালু: 'sha1'।

    • oaepLabel – OAEP প্যাডিং-এর জন্য ভ্যালু। নির্দিষ্ট না করলে কোনো লেবেল ব্যবহৃত হয় না।

    • padding – crypto.constants-এ সংজ্ঞায়িত অপশনাল ভ্যালু।

  • buffer – ডিক্রিপ্ট করার জন্য ডেটা কন্টেন্ট। সম্ভাব্য বাফার টাইপ: string, TypedArray, Buffer, ArrayBuffer, DataView।

উদাহরণ ১

privateDecrypt.js নামে একটি ফাইল তৈরি করুন এবং নিচের কোড স্নিপেটটি কপি করুন। ফাইল তৈরি করার পর নিচের কমান্ড দিয়ে কোডটি রান করুন:

node privateDecrypt.js

privateDecrypt.js

// Node.js প্রোগ্রাম crypto.privateDecrypt() মেথডের ফ্লো দেখানোর জন্য
// crypto এবং fs মডিউল ইম্পোর্ট করুন
const crypto = require('crypto');
const fs = require("fs");

// পাবলিক কী পড়ুন। এই কীগুলো generateKeyPair() ব্যবহার করে জেনারেট করা যাবে
publicKey = fs.readFileSync('public_key').toString();

// এনক্রিপ্ট করার জন্য নিচের টেক্সট পাস করুন
var buf = Buffer.from('Hello TutorialsPoint', 'utf8');

// উপরের টেক্সট এনক্রিপ্ট করুন
secretData = crypto.publicEncrypt(publicKey, buf);

// এনক্রিপ্টেড টেক্সট প্রিন্ট করুন
console.log(secretData);

// প্রাইভেট কী পড়ুন
privateKey = fs.readFileSync('private_key').toString();

// এনক্রিপ্টেড টেক্সট ডিক্রিপ্ট করুন
origData = crypto.privateDecrypt(privateKey, secretData);
console.log();

// মূল টেক্সট বাফার হিসেবে প্রিন্ট করুন
console.log(origData);

আউটপুট

C:\home\node>> node privateDecrypt.js

উদাহরণ ২

আরেকটি উদাহরণ দেখি।

// Node.js প্রোগ্রাম crypto.privateDecrypt() মেথডের ফ্লো দেখানোর জন্য
// crypto এবং fs মডিউল ইম্পোর্ট করুন
const crypto = require('crypto');
const fs = require("fs");

// generateKeyPairSync() মেথড ব্যবহার করে কী ফাইল জেনারেট করুন
function generateKeyFiles() {
    const keyPair = crypto.generateKeyPairSync('rsa', {
        modulusLength: 530,
        publicKeyEncoding: {
            type: 'spki',
            format: 'pem'
        },
        privateKeyEncoding: {
            type: 'pkcs8',
            format: 'pem',
            cipher: 'aes-256-cbc',
            passphrase: ''
        }
    });
    // কীগুলো নিচের ফাইলগুলিতে লিখুন
    fs.writeFileSync("public_key", keyPair.publicKey);
    fs.writeFileSync("private_key", keyPair.privateKey);
}

// জেনারেট কী মেথড কল করুন
generateKeyFiles();

// পাস করা স্ট্রিং এনক্রিপ্ট করুন
function encryptString (plaintext, publicKeyFile) {
    const publicKey = fs.readFileSync(publicKeyFile, "utf8");
    // publicEncrypt() মেথড এবং একটি পাবলিক কী ব্যবহার করে ডেটা এনক্রিপ্ট করুন
    const encrypted = crypto.publicEncrypt(publicKey, Buffer.from(plaintext));
    return encrypted.toString("base64");
}

// প্রাইভেট কী দিয়ে পাস করা স্ট্রিং ডিক্রিপ্ট করুন
function decryptString (ciphertext, privateKeyFile) {
    const privateKey = fs.readFileSync(privateKeyFile, "utf8");
    // privateDecrypt() মেথড এবং সংশ্লিষ্ট প্রাইভেট কী ব্যবহার করে ডেটা ডিক্রিপ্ট করুন
    const decrypted = crypto.privateDecrypt(
        {
            key: privateKey,
            passphrase: '',
        },
        Buffer.from(ciphertext, "base64")
    );
    return decrypted.toString("utf8");
}

// নিচের ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট হবে
const plainText = "TutorialsPoint!";

// স্ট্রিং এনক্রিপ্ট করার জন্য নিচের মেথড কল করুন
const encrypted = encryptString(plainText, "./public_key");

// প্লেইন টেক্সট প্রিন্ট করুন
console.log("Plaintext:", plainText);
console.log();

// এনক্রিপ্টেড টেক্সট প্রিন্ট করুন
console.log("Encrypted Text: ", encrypted);
console.log();

// ডিক্রিপ্টেড টেক্সট প্রিন্ট করুন
console.log("Decrypted Text: ", decryptString(encrypted, "private_key"));

আউটপুট

C:\home\node>> node privateDecrypt.js
Plaintext: TutorialsPoint!
Encrypted Text: AbSrqG4qFBG1q9KUBt8ddJxk9uNanOHXqY19N0mNHx0fm4M119dZVhcNrAvM8UaIRJvh7AsdWyjv1s cPA25KpeJuJQ==
Decrypted Text: TutorialsPoint!
  1. Node.js-এ crypto.publicEncrypt() মেথড

  2. Node.js-এ crypto.publicDecrypt() মেথড

  3. Node.js-এ crypto.privateEncrypt() মেথড

  4. Node.js-এ crypto.getHashes() মেথড