一套JS可逆加密算法,基于crypto-js
在JavaScript中,你可以使用多种方法来实现可逆加密。
这里是一个简单的例子,使用的是crypto-js库的AES加密方法。
首先,你需要安装crypto-js库。你可以通过npm来安装:
安装:
然后,你可以使用以下代码来实现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库。然后,我们定义了两个函数:encrypt和decrypt。
encrypt函数接收一个文本和一个密钥作为参数,并返回加密后的文本。
decrypt函数接收一个密文和一个密钥作为参数,并返回解密后的文本。
注意,这个例子使用了AES加密算法,并且使用了相同的密钥进行加密和解密。
在实际应用中,你应该使用一个安全的密钥管理方法来存储和传输密钥。