node 加密解密字符串
时间: 2023-07-08 15:37:40 浏览: 166
Node.js 提供了多种加密算法,可以用于字符串的加密和解密。以下是一些常见的加密算法及其使用方法:
1. md5 加密
md5 是一种单向加密算法,可以将任意长度的字符串加密为一个固定长度的字符串。Node.js 中的 crypto 模块提供了 md5 加密算法。以下是一个示例代码片段:
```javascript
const crypto = require('crypto');
const str = 'Hello, World!';
const hash = crypto.createHash('md5').update(str).digest('hex');
console.log(hash);
```
在这个例子中,str 是要加密的字符串,crypto.createHash('md5') 创建了一个 md5 加密器,update() 方法用于向加密器输入数据,digest('hex') 方法用于输出加密结果。最终输出的结果是一个 32 位的十六进制字符串。
2. sha256 加密
sha256 是一种单向加密算法,可以将任意长度的字符串加密为一个固定长度的字符串。Node.js 中的 crypto 模块提供了 sha256 加密算法。以下是一个示例代码片段:
```javascript
const crypto = require('crypto');
const str = 'Hello, World!';
const hash = crypto.createHash('sha256').update(str).digest('hex');
console.log(hash);
```
在这个例子中,str 是要加密的字符串,crypto.createHash('sha256') 创建了一个 sha256 加密器,update() 方法用于向加密器输入数据,digest('hex') 方法用于输出加密结果。最终输出的结果是一个 64 位的十六进制字符串。
3. aes-256-cbc 加密
aes-256-cbc 是一种对称加密算法,可以将任意长度的字符串加密为一个固定长度的字符串,同样也可以将加密后的字符串解密为原始字符串。Node.js 中的 crypto 模块提供了 aes-256-cbc 加密算法。以下是一个示例代码片段:
```javascript
const crypto = require('crypto');
const str = 'Hello, World!';
const key = 'mySecretKey';
const iv = 'myInitializationVector';
const cipher = crypto.createCipheriv('aes-256-cbc', key, iv);
let encrypted = cipher.update(str, 'utf8', 'hex');
encrypted += cipher.final('hex');
console.log(encrypted);
const decipher = crypto.createDecipheriv('aes-256-cbc', key, iv);
let decrypted = decipher.update(encrypted, 'hex', 'utf8');
decrypted += decipher.final('utf8');
console.log(decrypted);
```
在这个例子中,str 是要加密的字符串,key 是加密密钥,iv 是初始化向量。crypto.createCipheriv() 方法用于创建一个加密器,update() 方法用于向加密器输入数据,final() 方法用于输出加密结果。crypto.createDecipheriv() 方法用于创建一个解密器,update() 方法用于向解密器输入数据,final() 方法用于输出解密结果。最终输出的结果应该是原始字符串。
这只是一些常见的加密算法和使用方法,Node.js 中的 crypto 模块还提供了很多其他的加密算法,需要根据具体的需求选择合适的加密算法。
阅读全文