0%

一套JS可逆加密算法,基于crypto-js

一套JS可逆加密算法,基于crypto-js

在JavaScript中,你可以使用多种方法来实现可逆加密。
这里是一个简单的例子,使用的是crypto-js库的AES加密方法。

首先,你需要安装crypto-js库。你可以通过npm来安装:

安装:

npm install crypto-js

然后,你可以使用以下代码来实现AES加密和解密:

const CryptoJS = require('crypto-js');  

function encrypt(text, secretKey) {
const key = CryptoJS.enc.Utf8.parse(secretKey);
const iv = CryptoJS.lib.WordArray.create(new ArrayBuffer(16));
const encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(text), key, { iv: iv });
return encrypted.toString();
}

function decrypt(ciphertext, secretKey) {
const key = CryptoJS.enc.Utf8.parse(secretKey);
const iv = CryptoJS.lib.WordArray.create(new ArrayBuffer(16));
const decrypted = CryptoJS.AES.decrypt(ciphertext, key, { iv: iv });
return decrypted.toString(CryptoJS.enc.Utf8);
}

// 测试代码
const secretKey = 'mySecretKey';
const text = 'Hello, World!';
const encryptedText = encrypt(text, secretKey);
console.log('Encrypted: ' + encryptedText);
const decryptedText = decrypt(encryptedText, secretKey);
console.log('Decrypted: ' + decryptedText);

在这个例子中,我们首先导入了crypto-js库。然后,我们定义了两个函数:encryptdecrypt
encrypt函数接收一个文本和一个密钥作为参数,并返回加密后的文本。
decrypt函数接收一个密文和一个密钥作为参数,并返回解密后的文本。

注意,这个例子使用了AES加密算法,并且使用了相同的密钥进行加密和解密。
在实际应用中,你应该使用一个安全的密钥管理方法来存储和传输密钥。