使用CryptoJS库实现JavaScript中的DES加密和解密功能
// 引入CryptoJS库
var CryptoJS = require("crypto-js");
// 密钥,应确保其长度满足DES算法的要求(应为8的倍数个字节)
var key = CryptoJS.enc.Utf8.parse('1010101010101010');
// 加密函数
function encryptDES(message, key) {
var ciphertext = CryptoJS.DES.encrypt(message, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return ciphertext.toString();
}
// 解密函数
function decryptDES(ciphertext, key) {
var bytes = CryptoJS.DES.decrypt(ciphertext, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return bytes.toString(CryptoJS.enc.Utf8);
}
// 示例
var message = "Hello World!";
var ciphertext = encryptDES(message, key);
var decrypted = decryptDES(ciphertext, key);
console.log('明文:', message);
console.log('密文:', ciphertext);
console.log('解密后的明文:', decrypted);
这段代码使用了CryptoJS库中的DES算法实现了加密和解密功能。在加密函数中,我们指定了DES的工作模式为ECB(电子密码本),并使用了PKCS7填充方案来保证数据块的大小。在解密函数中,我们同样指定了工作模式和填充方案,以确保解密后能够得到正确的结果。
评论已关闭