后端加密前端解密的示例
时间: 2023-08-12 20:03:22 浏览: 89
这里提供一个简单的后端加密前端解密的示例(使用AES加密算法):
后端代码(Node.js):
```javascript
const crypto = require('crypto');
// 加密函数
function encrypt(text, secretKey) {
const iv = crypto.randomBytes(16);
const cipher = crypto.createCipheriv('aes-256-cbc', secretKey, iv);
let encrypted = cipher.update(text);
encrypted = Buffer.concat([encrypted, cipher.final()]);
return iv.toString('hex') + ':' + encrypted.toString('hex');
}
// 解密函数
function decrypt(text, secretKey) {
const parts = text.split(':');
const iv = Buffer.from(parts.shift(), 'hex');
const encryptedText = Buffer.from(parts.join(':'), 'hex');
const decipher = crypto.createDecipheriv('aes-256-cbc', secretKey, iv);
let decrypted = decipher.update(encryptedText);
decrypted = Buffer.concat([decrypted, decipher.final()]);
return decrypted.toString();
}
// 测试
const secretKey = 'my-secret-key';
const originalText = 'Hello, World!';
console.log('Original text:', originalText);
const encryptedText = encrypt(originalText, secretKey);
console.log('Encrypted text:', encryptedText);
const decryptedText = decrypt(encryptedText, secretKey);
console.log('Decrypted text:', decryptedText);
```
前端代码(JavaScript):
```javascript
// 加密函数(使用 CryptoJS 库)
function encrypt(text, secretKey) {
const iv = CryptoJS.lib.WordArray.random(16);
const encrypted = CryptoJS.AES.encrypt(text, secretKey, { iv: iv });
return iv.toString() + encrypted.toString();
}
// 解密函数(使用 CryptoJS 库)
function decrypt(text, secretKey) {
const parts = text.split(':');
const iv = CryptoJS.enc.Hex.parse(parts.shift());
const encryptedText = parts.join(':');
const decrypted = CryptoJS.AES.decrypt(encryptedText, secretKey, { iv: iv });
return decrypted.toString(CryptoJS.enc.Utf8);
}
// 测试
const secretKey = 'my-secret-key';
const originalText = 'Hello, World!';
console.log('Original text:', originalText);
const encryptedText = encrypt(originalText, secretKey);
console.log('Encrypted text:', encryptedText);
const decryptedText = decrypt(encryptedText, secretKey);
console.log('Decrypted text:', decryptedText);
```
注意:这只是一个简单的示例,实际应用中需要注意安全问题,如密钥的保存和传输等。
阅读全文