Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

Node.js में crypto.privateDecrypt() मेथड


Node.js में crypto.privateDecrypt() मेथड का उपयोग पैरामीटर में पास की गई प्राइवेट की का उपयोग करके दिए गए डेटा कंटेंट को डिक्रिप्ट करने के लिए किया जाता है, जिसे पहले crypto.publicEncrypt() मेथड के साथ संबंधित पब्लिक की का उपयोग करके एन्क्रिप्ट किया गया था।

सिंटैक्स

crypto.privateDecrypt(privateKey, buffer)

पैरामीटर्स

उपरोक्त पैरामीटर्स का विवरण नीचे दिया गया है:

  • key – इसमें निम्न 5 प्रकार के डेटा हो सकते हैं: Object, String, Buffer या KeyObject।

    • oaepHash – यह फील्ड OAEP पैडिंग और MGF1 के लिए उपयोग की जाने वाली हैश फंक्शन रखता है। डिफ़ॉल्ट मान: 'sha1'।

    • oaepLabel – यह फील्ड OAEP पैडिंग के लिए मान रखता है। यदि निर्दिष्ट न हो तो कोई लेबल उपयोग नहीं किया जाता।

    • padding – यह crypto.constants में परिभाषित एक वैकल्पिक मान है।

  • buffer – यह फील्ड डिक्रिप्ट किए जाने वाले डेटा कंटेंट को रखता है। संभावित बफर प्रकार हैं: string, TypedArray, Buffer, ArrayBuffer, DataView।

उदाहरण 1: पब्लिक की से एन्क्रिप्ट और प्राइवेट की से डिक्रिप्ट

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

उदाहरण 2: पूर्ण एन्क्रिप्शन-डिक्रिप्शन साइकिल

आइए एक और उदाहरण देखते हैं।

// 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);
}
// Generate keys मेथड कॉल करना
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.publicDecrypt() मेथड

    Node.js में crypto.publicDecrypt() मेथड का उपयोग पब्लिक की के साथ बफर में दिए गए डेटा को डिक्रिप्ट करने के लिए किया जाता है। यह बफर संबंधित प्राइवेट की का उपयोग करके एन्क्रिप्ट किया गया था, यानी crypto.privateEncrypt() मेथड द्वारा। सिंटैक्स crypto.publicDecrypt(key, buffer) पैरामीटर्स उपरोक्त पैर

  1. - Node.js में crypto.privateEncrypt() मेथड

    Node.js में crypto.privateEncrypt() मेथड का उपयोग फंक्शन में पास किए गए प्राइवेट की पैरामीटर का उपयोग करके दिए गए डेटा कंटेंट को एन्क्रिप्ट करने के लिए किया जाता है। सिंटैक्स crypto.privateEncrypt(privateKey, buffer) पैरामीटर्स उपरोक्त पैरामीटर्स का विवरण नीचे दिया गया है: privateKey – इसमें निम

  1. - Node.js में crypto.getHashes() मेथड

    Node.js में crypto.getHashes() मेथड एक सरणी (array) वापस करता है जिसमें सभी समर्थित हैश एल्गोरिदम के नाम होते हैं। crypto पैकेज में हैश एल्गोरिदम की एक विशाल सूची होती है जिसका हम उपयोग कर सकते हैं। लेकिन सबसे अधिक उपयोग किया जाने वाला सिफर एल्गोरिदम MD5 - Message-Digest Algorithm 5 है। सिंटैक्स c