前端使用AES算法加密

1、引入crypto-js.min.js
链接: https://pan.baidu.com/s/1NXODaJoycR9PONEI1_k80w?pwd=b9z7 提取码: b9z7

2、新建encoding-util.js工具

var  JSElement1=document.createElement("script");
JSElement1.setAttribute("type","text/javascript");
JSElement1.setAttribute("src","/license.js");
document.body.appendChild(JSElement1);
JSElement1.onload = function(){
    getEncodingjs();
}
function getEncodingjs(){
    var  JSElement2=document.createElement("script");
    JSElement2.setAttribute("type","text/javascript");
    JSElement2.setAttribute("src","/crypto-js.min.js");
    document.body.appendChild(JSElement2);
    JSElement2.onload = function(){
        function getAesString(data,key,iv){
            var key  = CryptoJS.enc.Utf8.parse(key);
            var iv   = CryptoJS.enc.Utf8.parse(iv);
            var encrypted =CryptoJS.AES.encrypt(data,key,{
                iv:iv,
                mode:CryptoJS.mode.CBC,
                padding:CryptoJS.pad.ZeroPadding
            });
            return encrypted.toString();  //返回的是base64格式的密文
        }
        function getDAesString(encrypted,key,iv){
            var key  = CryptoJS.enc.Utf8.parse(key);
            var iv   = CryptoJS.enc.Utf8.parse(iv);
            var decrypted =CryptoJS.AES.decrypt(encrypted,key,{
                iv:iv,
                mode:CryptoJS.mode.CBC,
                padding:CryptoJS.pad.Pkcs7
            });
            return decrypted.toString(CryptoJS.enc.Utf8);
        }
        function getAES(data){//加密
            //var data =document.getElementById("data-ipt").value;//明文
            var key  = 'abcdefghijklmn33';  //密钥
            var iv   = 'abcdefghijklmn33';
            var encrypted =getAesString(data,key,iv); //密文
            var encrypted1 =CryptoJS.enc.Utf8.parse(encrypted);
            return encrypted;
            // document.getElementById("encrypted").innerHTML = encrypted;
        }
        function getDAes(encrypted){//解密
           // var encrypted =document.getElementById("encrypted").innerHTML; //密文
            var key  = 'abcdefghijklmn12';
            var iv   = 'abcdefghijklmn12';
            var decryptedStr =getDAesString(encrypted,key,iv);
            return decryptedStr;
            // document.getElementById("decrypted").innerHTML = decryptedStr;
        }

        function checklnjs() {
              console.log("加密:"+getAES("localhost|eln.qunaj.cn,2023-09-31 23:59:59,A4-83-E7-72-8F-DF"));
            //先解密LwLicenseKey,密钥文件中的数据
             var LwLicenseString =getDAes(LwLicenseKey);
            // var LwLicenseString =LwLicenseKey;
            //获取host和过期时间
            var lwList=LwLicenseString.split(',');
            var iphostlst=lwList[0].split('|');
            //获取本机访问的域名
            var domain = window.location.host;
            console.log(domain)
            if(lwList[0].indexOf(domain)!=-1){
                //可用
                // console.log('可用')
            }else {
                //盗版
                // console.log('盗版')
                window.location.href='/warnaccept'
            }
            //获取当前时间的年月日

            var currentDate = new Date(); // 创建一个Date对象

            var year = currentDate.getFullYear(); // 获取当前年份
            var month = currentDate.getMonth() + 1; // 获取当前月份(注意月份从0开始,所以要加1)
            var day = currentDate.getDate(); // 获取当前日期
            var dateString=year+"-"+((month.length)>1?month:'0'+month)+"-"+day;
            //获取到期时间
            var dateexire = new Date(lwList[1]);
            console.log(dateexire)
            if(dateexire.getTime()<currentDate.getTime()){
                // console.log("到期了");
                window.location.href='/warnexpire'
            }else {
                // console.log("未过期");
            }

            //调用后台,检查是否和服务器保持一致
            $.ajax({
                url:"/check?linces="+encodeURIComponent(LwLicenseKey) ,
                type:"get",
                // data:data,
                success:function (result) {
                    console.log(result);
                    //先解密
                    var result1=getDAes(result.msg);
                    var str=result1.split("|");
                    if(str[0]=="success"){
                        //判断服务器时间和本机时间是否一致
                        var servertime = new Date(str[1]);
                        if(dateexire.getTime()<servertime.getTime()){
                            // console.log("到期了");
                            window.location.href='/warnexpire'
                        }else {
                            // console.log("未过期");
                        }
                    }
                    if(str[0]=="error"&&str[1].indeOf("mac")!=-1){
                            window.location.href='/warnmac'
                    }
                }
            })
        }
        checklnjs();
    }
}




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱码社长

一分钱不嫌少,谢谢您的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值