<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>3DES Encryption Example</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"></script>
</head>
<body>
<script>
// 加密密钥和初始化向量(IV)
var key = "123456789012345678901234"; // 确保密钥长度为24字节(192位)对于3DES
var iv = "12345678"; // IV长度应为8字节(64位)对于3DES
// 被加密的数据(需要是Base64编码的字符串)
const encryptedData = 'OWOx7Hh9wLW77SwDcsU15A=='; // Hello World
// 使用3DES解密
function decrypt3DES(ciphertext, key, iv) {
// 确保密钥和IV是正确长度的字符串
key = CryptoJS.enc.Utf8.parse(key);
iv = CryptoJS.enc.Utf8.parse(iv);
let decrypted = CryptoJS.TripleDES.decrypt({
ciphertext: CryptoJS.enc.Base64.parse(ciphertext)
}, key, {
iv: iv,
mode: CryptoJS.mode.CBC, // CBC模式
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
}
// 解密数据
const decryptedText = decrypt3DES(encryptedData, key, iv);
console.log(decryptedText);
/*
function encrypt3DES(message, key, iv) {
// 确保密钥和IV是正确长度的字符串
key = CryptoJS.enc.Utf8.parse(key);
iv = CryptoJS.enc.Utf8.parse(iv);
// 创建加密器实例
var encrypted = CryptoJS.TripleDES.encrypt(message, key, {
iv: iv,
mode: CryptoJS.mode.CBC, // 使用CBC模式
padding: CryptoJS.pad.Pkcs7
});
// 返回Base64编码的加密字符串
return encrypted.toString();
}
// 示例使用
var message = "Hello World";
var key = "123456789012345678901234"; // 确保密钥长度为24字节(192位)对于3DES
var iv = "12345678"; // IV长度应为8字节(64位)对于3DES
var encryptedMessage = encrypt3DES(message, key, iv);
console.log("Encrypted:", encryptedMessage);//结果是 OWOx7Hh9wLW77SwDcsU15A==
*/
</script>
</body>
</html>
2024-05-03【前端3DES加密示例】
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 1. 3DES 简介 3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将...
- 1.加密三个参数千万不要选择错误 今天做项目,需要进行3DES加密,引发了一系列的化学反应,让我一直研究这个加密,...