// 引入CryptoJS库,这是一个常用的JavaScript加密库
// 可以通过CDN或者npm安装来引入
// <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js"></script>
// DES加密示例代码
function encryptByDES(message, key) {
// 将密钥转换为字节数组,并确保长度为8个字节(DES要求)
var keyHex = CryptoJS.enc.Utf8.parse(key.slice(0, 8));
// 使用CBC模式和PKCS7填充方式对消息进行加密
var encrypted = CryptoJS.DES.encrypt(message, keyHex, {
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
// 返回Base64编码的加密结果
return encrypted.toString();
}
// DES解密示例代码
function decryptByDES(ciphertext, key) {
// 将密钥转换为字节数组,并确保长度为8个字节(DES要求)
var keyHex = CryptoJS.enc.Utf8.parse(key.slice(0, 8));
// 解密Base64编码的密文
var decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Base64.parse(ciphertext)
}, keyHex, {
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
// 返回解密后的UTF-8字符串
return decrypted.toString(CryptoJS.enc.Utf8);
}
// 示例用法
var message = "Hello, DES!";
var key = "12345678"; // 密钥必须为8个字符
var encrypted = encryptByDES(message, key);
console.log("Encrypted:", encrypted);
var decrypted = decryptByDES(encrypted, key);
console.log("Decrypted:", decrypted);
encryptByDES
:该函数接受明文和密钥作为参数,使用DES算法进行加密,并返回Base64编码的加密结果。decryptByDES
:该函数接受Base64编码的密文和密钥作为参数,使用DES算法进行解密,并返回原始的明文。希望这段代码和解释对你有帮助!
上一篇:nestjs websocket
下一篇:js grid
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站