JS实现DES
简介
DES(Data Encryption Standard)是一种对称密钥加密算法,用于加密和解密数据。它使用56位的密钥和一系列的置换和替换操作来加密数据。DES算法将64位的明文分成64位的数据块,然后通过16轮的加密运算来加密数据。
每一轮加密操作包括数据块的置换和替换步骤,其中密钥被用来控制这些步骤。最后一轮加密完成后,得到的64位数据块就是加密后的密文。
解密过程与加密过程相反,通过使用相同的密钥和相反顺序的操作来将密文解密为明文。
JS 实现
关键参数:密钥 key
<script src="https://cdn.bootcss.com/crypto-js/3.1.9-1/crypto-js.min.js"></script>
<script>
//DES 加密
function encryptByDES(message, key){
var keyHex = CryptoJS.enc.Utf8.parse(key);
var encrypted = CryptoJS.DES.encrypt(message, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.ciphertext.toString();
}
//DES 解密
function decryptByDES(ciphertext, key){
var keyHex = CryptoJS.enc.Utf8.parse(key);
var decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Hex.parse(ciphertext)
}, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
var result_value = decrypted.toString(CryptoJS.enc.Utf8);
return result_value;
}
</script>
//调用
<script>
var message = '111111';//需要加密的数据
var key = '12345678';//加密密钥 key
var desMessage = 'xxxxxxxxxx';
//加密
desMessage = encryptByDES(message, key);
console.log(desMessage);
//解密
message = decryptByDES(desMessage,key)
console.log(message);
</script>