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();
}
}