2024-05-03【前端3DES加密示例】

<!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>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容