如何在 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() 方法來加密和解密數據。