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

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

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

সিনট্যাক্স

crypto.publicEncrypt(key, buffer)

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

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

    • key – এই ফিল্ডে PEM এনকোডেড পাবলিক বা প্রাইভেট কী থাকে। এটি string, buffer বা keyObject টাইপের হতে পারে।

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

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

    • passphrase – প্রাইভেট কী-এর জন্য অপশনাল পাসফ्रेज।

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

    • encoding – বাফার, কী, oaepLabel বা passphrase স্ট্রিং হলে ব্যবহৃত এনকোডিং টাইপ।

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

উদাহরণ ১

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

node publicEncrypt.js

publicEncrypt.js

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

// কী জেনারেট করার ফাংশন তৈরি করুন
function generateKeyFiles() {
    const keyPair = crypto.generateKeyPairSync('rsa', {
        modulusLength: 520,
        publicKeyEncoding: {
            type: 'spki',
            format: 'pem'
        },
        privateKeyEncoding: {
            type: 'pkcs8',
            format: 'pem',
            cipher: 'aes-256-cbc',
            passphrase: ''
        }
    });
    // নিচের নামে পাবলিক কী ফাইল তৈরি করুন
    fs.writeFileSync("public_key", keyPair.publicKey);
}

// কী জেনারেট করুন
generateKeyFiles();

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

// এনক্রিপ্ট করা টেক্সট
const plainText = "TutorialsPoint";

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

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

আউটপুট

C:\home\node>> node publicEncrypt.js
Plaintext: TutorialsPoint
Encrypted: kgnqPxy/n34z+/5wd7MZiMAL5LrQisTLfZiWoSChXSvxgtifMQaZ56cbF+twA55olM0rFfnuV6qqtc a8SXIHQrk=

উদাহরণ ২

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

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

// কী জেনারেট করার ফাংশন তৈরি করুন
function generateKeyFiles() {
    const keyPair = crypto.generateKeyPairSync('rsa', {
        modulusLength: 520,
        publicKeyEncoding: {
            type: 'spki',
            format: 'pem'
        },
        privateKeyEncoding: {
            type: 'pkcs8',
            format: 'pem',
            cipher: 'aes-256-cbc',
            passphrase: ''
        }
    });
    // পাবলিক কী ফাইল তৈরি করুন
    fs.writeFileSync("public_key", keyPair.publicKey);
}

// কী জেনারেট করুন
generateKeyFiles();

// নিচের ফাংশন দিয়ে স্ট্রিং এনক্রিপ্ট করুন
function encryptString (plaintext, publicKeyFile) {
    const publicKey = fs.readFileSync(publicKeyFile, "utf8");
    // নিচের প্যারামিটার সহ publicEncrypt() কল করুন
    const encrypted = crypto.publicEncrypt(publicKey, Buffer.from(plaintext));
    return encrypted;
}

// এনক্রিপ্ট করা টেক্সট
const plainText = "Hello TutorialsPoint!";

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

// প্লেইন টেক্সট প্রিন্ট করুন
console.log("Plaintext:", plainText);
// এনক্রিপ্টেড বাফার প্রিন্ট করুন
console.log("Buffer: ", encrypted);

আউটপুট

C:\home\node>> node publicEncrypt.js
Plaintext: Hello TutorialsPoint!
Buffer: 
  1. Node.js-এ crypto.publicDecrypt() মেথড

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

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

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