JavaScript 实现字符串加密和解密

本文介绍了一种使用JavaScript实现的加密解码算法,包括加密和解密两个主要功能。此算法利用字符集进行编码,并提供了特殊的加密字符串处理方式。值得注意的是,该功能仅在IE浏览器上进行了测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   注:该加密解码功能只在IE浏览器中测试过,其他浏览器暂未测试,请谅解

   var sdf3 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcde";

    // 加密
    function textEncrypt(str) {
        var t = "";
        var a, a1, a2, a3;
        var b = sdf3.split("");
        for (var x = 0; x < str.length; x++) {
            a = str.charCodeAt(x);
            a1 = a % 41;
            a = (a - a1) / 41;
            a2 = a % 41;
            a = (a - a2) / 41;
            a3 = a % 41;
            t += b[a3] + b[a2] + b[a1];
        }
        a = "z";
        for (var x = 0; x < t.length; x += 3) {
            if (t.charAt(x) != "A") {
                return t;
            }
            a += t.substr(x + 1, 2);
        }
        return a;
    }

 

    // 解密

    function textDecryption(str) {
        var a1, a2, a3, b = sdf3;
        var d = 0;
        var t, a;
        if (str.charAt(0) == "z") {
            t = new Array(Math.floor((str.length - 1) / 2));
            a = t.length;
            for (var x = 0; x < a; x++) {
                d++;
                a2 = b.indexOf(str.charAt(d));
                d++;
                a3 = b.indexOf(str.charAt(d));
                t[x] = a2 * 41 + a3;
            }
        }else {
            t = new Array(Math.floor(str.length / 3));
            a = t.length;
            for (var x = 0; x < a; x++) {
                a1 = b.indexOf(str.charAt(d));
                d++;
                a2 = b.indexOf(str.charAt(d));
                d++;
                a3 = b.indexOf(str.charAt(d));
                d++;
                t[x] = a1 * 1681 + a2 * 41 + a3;
            }
        }
        a = eval("String.fromCharCode(" + t.join(',') + ")");
        return a;
    }

 

    // 拷贝到粘贴板
    function copy(value) {
        var Result = value;
        if (Result == "") {
            return;
        } else {
            window.clipboardData.setData("Text", Result);
            window.alert('已复制成功。');
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值