Understanding Node.js Crypto Module : Encryption, Hashing, and Security

Other Blogs

Blogs ❯❯ NodeJS

Image could not load

crypto Module In NodeJS

Node.js Crypto Module

Node.js में crypto module एक built-in module है जो cryptographic functionality provide करता है। ये module various encryption और hashing algorithms का use करके data को secure करने में मदद करता है। इस module का use करके आप secure applications और services build कर सकते हैं।

Need of Crypto Module

  • Data Encryption : Sensitive information को encrypt करके unauthorized access से protect करना।

  • Data Integrity : Hashing का use करके data की integrity verify करना ताकि ये confirm किया जा सके कि data में कोई modification नहीं हुआ है।

  • Authentication : Cryptographic algorithms का use करके user authentication implement करना।

  • Secure Communication : SSL/TLS protocols का use करके secure communication channels establish करना।

Common Cryptographic Algorithms In NodeJS

  • Hash Functions : SHA-256, SHA-512, etc.

  • Symmetric Encryption : AES (Advanced Encryption Standard)

  • Asymmetric Encryption : RSA (Rivest-Shamir-Adleman)

Using the Crypto Module

Node.js में crypto module को use करने के लिए सबसे पहले इसे require करना पड़ता है :

const crypto = require('crypto');

Hashing In NodeJS

Hashing का use data की integrity check करने के लिए किया जाता है। Hashing algorithm data को एक fixed-size string में convert कर देता है।

NodeJS SHA-256 Hashing Example

const crypto = require('crypto'); const data = 'Hello, World!'; const hash = crypto.createHash('sha256').update(data).digest('hex'); console.log('SHA-256 Hash:', hash);

NodeJS Symmetric Encryption

Symmetric encryption में encryption और decryption के लिए same key का use होता है।

NodeJS AES Encryption Example

const crypto = require('crypto'); // Secret key and initialization vector (IV). const secretKey = crypto.randomBytes(32); // 256-bit key const iv = crypto.randomBytes(16); // 128-bit IV // Encrypt function. function encrypt(text) { const cipher = crypto.createCipheriv('aes-256-cbc', secretKey, iv); let encrypted = cipher.update(text, 'utf8', 'hex'); encrypted += cipher.final('hex'); return encrypted; } // Decrypt function. function decrypt(encryptedText) { const decipher = crypto.createDecipheriv('aes-256-cbc', secretKey, iv); let decrypted = decipher.update(encryptedText, 'hex', 'utf8'); decrypted += decipher.final('utf8'); return decrypted; } const message = 'Secret Message'; const encryptedMessage = encrypt(message); console.log('Encrypted:', encryptedMessage); const decryptedMessage = decrypt(encryptedMessage); console.log('Decrypted:', decryptedMessage);

NodeJS Asymmetric Encryption

Asymmetric encryption में दो keys का use होता है : public key और private key

Public key का use data को encrypt करने के लिए होता है और private key का use decrypt करने के लिए।

NodeJS RSA Encryption Example

const crypto = require('crypto'); // Key pair generation. const { publicKey, privateKey } = crypto.generateKeyPairSync('rsa', { modulusLength: 2048, }); // Encrypt function. function encrypt(text, publicKey) { const encrypted = crypto.publicEncrypt(publicKey, Buffer.from(text)); return encrypted.toString('hex'); } // Decrypt function. function decrypt(encryptedText, privateKey) { const decrypted = crypto.privateDecrypt(privateKey, Buffer.from(encryptedText, 'hex')); return decrypted.toString('utf8'); } const message = 'Secret Message'; const encryptedMessage = encrypt(message, publicKey); console.log('Encrypted:', encryptedMessage); const decryptedMessage = decrypt(encryptedMessage, privateKey); console.log('Decrypted:', decryptedMessage);

NodeJS Create HMAC

HMAC (Hash-based Message Authentication Code) का use message की integrity और authenticity verify करने के लिए होता है।

NodeJS HMAC with SHA-256 Example

const crypto = require('crypto'); const secret = 'mysecretkey'; const data = 'Important Message'; const hmac = crypto.createHmac('sha256', secret).update(data).digest('hex'); console.log('HMAC:', hmac);

Conclusion

  • Data Security : crypto module data को secure रखने के लिए encryption और hashing algorithms provide करता है।

  • Integrity Verification : Hashing और HMAC का use करके data की integrity verify की जा सकती है।

  • Secure Communication : SSL/TLS protocols का use करके secure communication channels establish किए जा सकते हैं।

Node.js का crypto module developers को powerful tools provide करता है जिससे वे अपनी applications में robust security features implement कर सकते हैं। ये समझना जरूरी है कि cryptography एक complex field है और इसे implement करने में बहुत सावधानी बरतनी चाहिए।

Recent Blogs

Loading ...

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook

Your Thought ?

Please wait . . .

    0 Comment(s) found !