Node.js 什么是加密模块以及如何使用它

Node.js 什么是加密模块以及如何使用它

Node.js 是一个基于Chrome的V8 JavaScript引擎构建的开源跨平台运行环境,用于在浏览器之外执行JavaScript代码。Node.js支持许多第三方模块,能够执行许多不同类型的任务。加密模块是其中之一,可帮助加密、解密或对任何数据进行哈希处理,以保护数据免受外界的威胁。该模块的主要功能是将明文或数据转换为加密格式(哈希值,密码文本),使其变得不可读。

加密和bcrypt是用于保护敏感数据的两个第三方模块。加密模块和bcrypt模块之间的主要区别在于,与加密模块相比,bcrypt模块执行更强大的哈希处理。因此,如果我们想执行更强大的哈希处理,我们会更倾向于使用bcrypt模块,否则使用加密模块。

明文: 我们书写或输入的任何人能够理解的内容都被称为明文。它可以包含任何字符(a-zA-Z0-9!,@,#….)。例如:我们的密码。

密码文本: sdfasc1asT67W2sqWwsdfsadf 能理解这个词吗?这是一个密码文本,是一种不可读和不可理解的文本,是通过对明文进行算法处理生成的。

密码学机制:

哈希处理: 这是将明文转换为密码文本的一种机制。它是单向的加密函数,即我们无法将密码文本还原为明文。在身份验证系统中广泛使用,以避免将明文密码存储在数据库中,但也用于验证文件、文档和其他类型的数据。Message Digest 5(MD5)、RSA、SHA等是广泛使用的哈希算法。

加密和解密: 加密算法接受输入和密钥,并生成一个看似随机的输出,称为密码文本。这个过程是可逆的。解密是加密的逆过程。该算法采用相同的密钥和密码文本,并返回我们原始的明文。这在像WhatsApp等的通信系统中被广泛使用。AES等是广泛使用的加密和解密算法。

Node.js中的加密模块功能:

  • 易于入门
  • 有很多使用广泛的不同版本算法
  • 源代码清晰一致
  • 它在各个地方都使用JavaScript,因此可以与Node.js一起使用

安装模块:

npm install crypto-js --save

项目结构:

Node.js 什么是加密模块以及如何使用它

我们可以以两种方式使用此模块,一种用于散列,另一种用于数据的加密和解密。有很多算法可用于散列和数据的加密与解密。

使用一个加密模块来散列数据:

// Importing module
const SHA256 = require("crypto-js/sha256");
const plaindata = "GeeksForGeeks"
const hasheddata = SHA256(plainText).toString()
console.log(hasheddata)

运行下面的命令来运行 index.js 文件:

node index.js

输出:

Node.js 什么是加密模块以及如何使用它

使用加密模块进行数据的加密和解密:

我们将使用密钥来加密和解密数据。一个密钥可以用于数据的加密和解密过程。下面是使用单个密钥进行数据加密和解密的示例。

// Importing the crypto module
const crypto = require("crypto-js")
const data = "This is the data that need to be encrypted"
const key = "password@111"
 
// Encrypte the data
const encrypted = crypto.AES.encrypt(data, key).toString();
console.log("Encrypted data")
 
// Printing the encrypted data
console.log(encrypted)
console.log("Decrypted data")
 
// Decrypting the data
const decrypted = crypto.AES.decrypt(encrypted, key)
                                    .toString(crypto.enc.Utf8)
console.log(decrypted)

使用以下命令运行 index.js 文件:

node index.js

输出:

Node.js 什么是加密模块以及如何使用它

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程