如何在 Node.js 中使用 ‘crypto’ 模块進行加密和解密?

Node.js 是一個廣受歡迎的 JavaScript 環境,它可以用於開發各種應用程式,包括網站和伺服器應用程式。Node.js 也提供了一個強大的加密模組,稱為 crypto,可以用於加密和解密數據。本文將介紹如何使用 crypto 模組在 Node.js 中進行加密和解密。

安裝 crypto 模組

首先,您需要安裝 crypto 模組,可以使用以下命令:

npm install crypto

使用 crypto 模組

一旦安裝完成,您就可以在 Node.js 中使用 crypto 模組了。首先,您需要導入 crypto 模組:

const crypto = require('crypto');

接下來,您可以使用 crypto 模組來加密和解密數據。

加密數據

要加密數據,您可以使用 crypto 模組中的 createCipher() 方法,它接受兩個參數:加密算法和密鑰。

const algorithm = 'aes-256-cbc';
const key = crypto.randomBytes(32);
const iv = crypto.randomBytes(16);

let cipher = crypto.createCipheriv(algorithm, key, iv);
let encrypted = cipher.update('some clear text data', 'utf8', 'hex');
encrypted += cipher.final('hex');
console.log(encrypted);

在上面的示例中,我們使用 aes-256-cbc 算法來加密數據,並使用隨機生成的 32 字節密鑰和 16 字節初始化向量(IV)。然後,我們使用 createCipheriv() 方法創建一個加密器,並使用 update() 方法將明文數據加密為十六進制字符串。

解密數據

要解密數據,您可以使用 crypto 模組中的 createDecipheriv() 方法,它接受三個參數:加密算法,密鑰和初始化向量(IV)。

let decipher = crypto.createDecipheriv(algorithm, key, iv);
let decrypted = decipher.update(encrypted, 'hex', 'utf8');
decrypted += decipher.final('utf8');
console.log(decrypted);

在上面的示例中,我們使用 createDecipheriv() 方法創建一個解密器,並使用 update() 方法將加密的十六進制字符串解密為明文數據。

總結

在本文中,我們介紹了如何使用 Node.js 中的 crypto 模組進行加密和解密。我們首先介紹了如何安裝 crypto 模組,然後介紹了如何使用 createCipheriv() 和 createDecipheriv() 方法來加密和解密數據。

Categorized in:

Tagged in:

,