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

क्रिप्टो.स्क्रिप्ट () Node.js में विधि

<घंटा/>

क्रिप्टो.स्क्रिप्ट () विधि स्क्रीप्ट विधि के लिए एक अतुल्यकालिक कार्यान्वयन प्रदान करती है। स्क्रीप्ट को एक पासवर्ड-आधारित कुंजी व्युत्पत्ति फ़ंक्शन के रूप में परिभाषित किया जा सकता है जो सिस्टम को क्रूर-बल के हमलों से बचाता है और इसे अवांछित बनाता है। लेकिन स्क्रिप्ट फ़ंक्शन कम्प्यूटेशनल रूप से महंगा होने के साथ-साथ मेमोरी के लिहाज से भी महंगा है।

सिंटैक्स

crypto.scrypt(password, salt, keylen, [options], [callback])

पैरामीटर

उपरोक्त पैरामीटर नीचे वर्णित हैं -

  • पासवर्ड - स्क्रीप्ट के लिए पासवर्ड फ़ील्ड प्रविष्टि को डिकोड करने के लिए आवश्यक है। यह एक स्ट्रिंग, ऑब्जेक्ट, TypedArray, आदि हो सकता है।

  • नमक - यह मान यथासंभव अद्वितीय होना चाहिए। यह मुख्य रूप से डेटा को एन्क्रिप्ट करने के लिए उपयोग किया जाता है। नमक की न्यूनतम सुझाई गई लंबाई 16 बाइट्स है।

  • कीलेन - यह पैरामीटर कुंजी की लंबाई को परिभाषित करता है और एक संख्या होनी चाहिए।

  • विकल्प

    • लागत - यह ली गई प्रत्येक मेमोरी के लिए सीपीयू की लागत है। यह मान 1 से 2 अधिक का घात होना चाहिए। डिफ़ॉल्ट मान 16384 है।

    • ब्लॉक आकार - यह पैरामीटर प्रत्येक ब्लॉक आकार के लिए मान को परिभाषित करता है। डिफ़ॉल्ट मान 8 है।

    • समानांतर - इस पैरामीटर ने समानांतरकरण पैरामीटर को परिभाषित किया। डिफ़ॉल्ट मान 1 है।

    • एन - यह पैरामीटर लागत के लिए एक उपनाम है और इसके स्थान पर इसका उपयोग किया जा सकता है। एक समय में केवल एक ही परिभाषित किया जा सकता है।

    • आर - यह पैरामीटर ब्लॉकसाइज के लिए एक उपनाम है और इसी तरह एक समय में केवल एक ही परिभाषित किया जा सकता है।

    • पी - समानांतरकरण के लिए उपनाम। केवल एक को परिभाषित किया जा सकता है।

    • मैक्समेम - यह मेमोरी अपर बाउंड वैल्यू है। जब 128*N*r> maxmem. डिफ़ॉल्ट मान 32*1024*1024 है।

  • कॉलबैक - इस फ़ंक्शन को तब कहा जाता है जब आप इसे संभालना चाहते हैं तो कोई त्रुटि फेंक दी जाती है।

उदाहरण

scrypt.js नाम की एक फाइल बनाएं और नीचे दिए गए कोड स्निपेट को कॉपी करें। फ़ाइल बनाने के बाद, इस कोड को चलाने के लिए निम्न कमांड का उपयोग करें जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है -

node scrypt.js

scrypt.js

// Node.js program to demonstrate the flow of crypto.scrypt() method

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

// Calling the scrypt() method with the below parameters
crypto.scrypt('tutorialspoint', 'asdfghjkl', 32, (err, derivedKey) => {

if (err) throw err;

// Prints the derived key as a buffer value
console.log("The derived key(1) is:", derivedKey);
});

// Calling the scrypt() method with the cost option
crypto.scrypt('GeeksforGeeks', 'tfytdx', 128,
   { N: 512 }, (err, derivedKey) => {

if (err) throw err;

// Prints the derived key as a buffer value
console.log("The derived key(2) is:", derivedKey);
console.log();
});

आउटपुट

C:\home\node>> node scrypt.js
The derived key(2) is: <Buffer b3 f8 72 5f 58 df 98 d9 c0 8a ba 0c 2c 50 85 b1
76 de 39 35 40 27 7d 57 f1 6a a1 07 54 dc c9 63 65 32 f2 db 29 95 dc ee 0b 9f
e3 d5 0a 9e 3a d0 f6 b4 ... >

The derived key(1) is: <Buffer ae 50 38 61 17 f7 11 51 e4 50 63 3c 2a 9c ec f0
46 42 a6 ca 04 78 67 05 c8 8c 0c 69 00 c3 03 7f>

उदाहरण

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

// Node.js program to demonstrate the flow of crypto.scrypt() method

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

// Initializing the value of salt as a typedArray
const salt = new Uint32Array(7);

// Using the scrypt() method with below parameters
crypto.scrypt('WelcomeTutorialspoint', salt, 16, (err, derivedKey) => {
   if (err) throw err;
   // Printing the derived key in encoded string format
   console.log("The derived key(1) is:",
      derivedKey.toString("ascii"));
});

// Initialising the value of salt as a DataView
const newSalt = new DataView(new ArrayBuffer(5));

// Using the script() method with cost parameter
crypto.scrypt('HelloTutorialspoint', newSalt, 16, { N: 32 }, (err, derivedKey) => {
   if (err) throw err;
   // Printing the derived key in encoded string format
   console.log("The derived key(2) is:",
      derivedKey.toString("base64"));
});

आउटपुट

C:\home\node>> node scrypt.js
The derived key(2) is: PBYDRlgayLVGjC8z3YUcSQ==
The derived key(1) is: <Uu0allCb,d?,Z5_

  1. क्रिप्टो.प्राइवेटएन्क्रिप्ट () Node.js में विधि

    Crypto.privateEncrypt() का उपयोग फ़ंक्शन में दिए गए निजी कुंजी पैरामीटर का उपयोग करके दी गई डेटा सामग्री को एन्क्रिप्ट करने के लिए किया जाता है। सिंटैक्स crypto.privateEncrypt(privateKey, बफर) पैरामीटर उपरोक्त पैरामीटर नीचे वर्णित हैं - निजी कुंजी - इसमें निम्नलिखित डेटा प्रकार हो सकते हैं - ऑब

  1. क्रिप्टो.प्राइवेटडिक्रिप्ट () Node.js में विधि

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

  1. क्रिप्टो.getHashes () Node.js में विधि

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