Home  >  Article  >  Web Front-end  >  nodejs implements 3des encryption and decryption

nodejs implements 3des encryption and decryption

王林
王林Original
2023-05-16 21:26:371026browse

Node.js is a JavaScript runtime environment based on the Chrome V8 engine, which is ideal for building high-performance web applications. 3DES (Triple Data Encryption Standard) is a commonly used symmetric encryption algorithm that is widely used in data transmission and storage. In this article, we will introduce how to implement 3DES encryption and decryption using Node.js.

  1. Install the necessary dependencies

First, we need to install a Node.js module named crypto locally. The crypto module is one of the core modules of Node.js and provides many security-related functions, including encryption, decryption, hashing, etc.

You can use the following command to install the crypto module:

npm install crypto
  1. Generate key

Before performing encryption and decryption, we need to generate a key first . The 3DES algorithm uses a key length of 24 bytes (192 bits). Random keys can be generated using the randomBytes() method in the crypto module.

The following is a sample code for generating a random key:

const crypto = require('crypto');

const key = crypto.randomBytes(24);
console.log(key.toString('hex'));

Running the above code can output a random string composed of 48 hexadecimal numbers, which is the key of 3DES .

  1. Encrypt data

Use the generated key and the crypto module to encrypt the data. The 3DES encryption algorithm is provided in the crypto module. The usage method is as follows:

const crypto = require('crypto');

const key = crypto.randomBytes(24);
const text = 'Hello, world!';

const cipher = crypto.createCipheriv('des-ede3', key, '');
let encrypted = cipher.update(text, 'utf8', 'hex');
encrypted += cipher.final('hex');
console.log(encrypted);

In the above code, 'des-ede3' means using the 3DES encryption algorithm, key is the previously generated key, '' means using the default encrypted vector.

Finally, use the createCipheriv() method to create an cipher object cipher, and use the update() method to pass the text to be encrypted to it. 'utf8' represents the encoding method of the text, and 'hex' represents the encoding of the output result. method, and finally use the final() method to output the encryption result.

  1. Decrypt the data

Use the generated key and the crypto module to decrypt the data in a similar way to encrypting the data. The crypto module provides the createDecipheriv() method to create a decryptor object. The usage method is as follows:

const crypto = require('crypto');

const key = crypto.randomBytes(24);
const text = 'Hello, world!';

const cipher = crypto.createCipheriv('des-ede3', key, '');
let encrypted = cipher.update(text, 'utf8', 'hex');
encrypted += cipher.final('hex');
console.log(encrypted);

const decipher = crypto.createDecipheriv('des-ede3', key, '');
let decrypted = decipher.update(encrypted, 'hex', 'utf8');
decrypted += decipher.final('utf8');
console.log(decrypted);

In the above code, use the createDecipheriv() method to create a decryptor object decipher, and use the update() method Pass it the text to be decrypted, 'hex' represents the encoding method of the input result, 'utf8' represents the encoding method of the output result, and finally use the final() method to output the decrypted result.

In this way, we use Node.js to implement 3DES encryption and decryption. If more advanced security is required, other more powerful encryption algorithms can be used, such as AES (Advanced Encryption Standard), etc.

Summary

This article introduces how to use Node.js to implement 3DES encryption and decryption, covering basic operations such as generating keys, encrypting data, and decrypting data. The crypto module of Node.js provides a wealth of security-related functions, which can easily perform various encryption and decryption operations.

The above is the detailed content of nodejs implements 3des encryption and decryption. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn