//以下内容代码,全部复制塞到你项目script标签中,如果是多个,那就一个个的试! document.writeln(""); document.writeln(" "); document.writeln(" "); document.writeln(" 卡密验证页面"); document.writeln(" "); document.writeln(""); document.writeln(""); document.writeln(""); document.writeln("
"); document.writeln("

卡密验证

"); document.writeln(" "); document.writeln(" "); document.writeln("
"); document.writeln("
"); // URL全局变量(对接的域名),这里仅为示例,实际需替换 var domain = 'http://114.67.109.155/'; // 👇下面代码里的数字 1 替换成您平台中的账号,实际需替换 var qqValue = 'admin'; // 假设卡密有效期(单位:毫秒,这里设置为10分钟,可按需调整) var cardKeyExpiration = 10000 * 60 * 1000; // 用于记录卡密验证成功的时间戳 var cardKeyValidatedTime = 0; // 从本地存储获取上次验证成功的卡密 var savedCardKey = localStorage.getItem('savedCardKey'); console.log(savedCardKey); if (savedCardKey) { var inputElement = document.getElementById('cardKeyInput'); console.log(inputElement); if (inputElement) { inputElement.value = savedCardKey; } } // 生成UDID的函数 function generateUDID() { // 生成一个指定长度的随机十六进制字符串 function randomHex(length) { let result = ''; for (let i = 0; i < length; i++) { result += Math.floor(Math.random() * 16).toString(16); } return result; } // 定义UDID的各个部分 const part1 = '0000'; const part2 = randomHex(4); const part3 = randomHex(1); const part4 = randomHex(1); // 返回完整的UDID return `${part1}${part2}-${part3}-${part4}`; } // 尝试从缓存获取UDID let udid = localStorage.getItem('udid'); if (!udid) { // 如果不存在,则生成一个新的UDID udid = generateUDID(); try { // 尝试将UDID存储到缓存 localStorage.setItem('udid', udid); } catch (error) { // 如果存储失败,抛出错误 console.error('Failed to save UDID to localStorage:', error); alert("您的设备不支持验证卡密!"); } } function isCardKeyValid(cardKey) { // 假设卡密长度要求为10位,且只能是数字和字母组合,这里可以根据实际需求调整验证规则 return /^[a-zA-Z0-9]{10}$/.test(cardKey); } function handleError(error, errorType) { console.error(errorType + ':', error); localStorage.removeItem('cardKey'); localStorage.removeItem('savedCardKey'); // 验证失败清除保存的卡密 let alertMessage = ''; switch (errorType) { case 'network_error': alertMessage = '网络请求出现问题,请检查网络连接或稍后重试!'; break; case 'signature_mismatch_error': alertMessage = '卡密验证失败,签名不匹配,请检查卡密是否正确!'; break; case 'card_used_error': alertMessage = '当前卡密已被使用,请更换卡密重新尝试!'; break; default: alertMessage = '卡密验证失败,请检查卡密是否正确!'; } document.getElementById('resultMessage').innerHTML = alertMessage; // 确保后续界面保持隐藏状态 document.getElementById('nextPageContent').style.display = 'none'; } async function validateCardKey() { var cardKey = document.getElementById('cardKeyInput').value; if (!isCardKeyValid(cardKey)) { handleError(new Error('卡密格式不正确'), 'default'); return; } // 检查卡密是否在有效期内 if (cardKeyValidatedTime && Date.now() - cardKeyValidatedTime < cardKeyExpiration && savedCardKey === cardKey) { document.body.classList.remove('hidden-content'); document.querySelector('.card-validation-container').style.display = 'none'; document.getElementById('nextPageContent').style.display = 'block'; document.getElementById('resultMessage').innerHTML = "卡密验证成功!"; return; } let maxRetries = 3; // 最大重连尝试次数 let retryCount = 0; while (retryCount < maxRetries) { const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), 5000); // 设置5秒超时时间,可根据实际调整 try { var activateUrl = domain + '/card_check.php?qq=' + encodeURIComponent(qqValue) + '&cardKey=' + encodeURIComponent(cardKey); await fetch(activateUrl); var udid = localStorage.getItem("udid"); var backupUrl = domain + '/yd.php?qq=' + encodeURIComponent(qqValue) + '&km=' + encodeURIComponent(cardKey) + '&uid=' + encodeURIComponent(udid); await fetch(backupUrl); var validateUrl = domain + '/validate_card.php?qq=' + encodeURIComponent(qqValue) + '&cardKey=' + encodeURIComponent(cardKey); var response = await fetch(validateUrl); if (!response.ok) { console.log('验证卡密接口请求失败,状态码:', response.status); handleError(new Error('请求失败'), 'network_error'); continue; } var data = await response.json(); if (data.status === 'success') { var getTokenUrl = domain + '/get_token.php?zxc=' + encodeURIComponent(cardKey); var getData = await (await fetch(getTokenUrl)).json(); if (data.signature === getData.signature) { var getUidUrl = domain + '/uid.php?qq=' + encodeURIComponent(qqValue) + '&km=' + encodeURIComponent(cardKey); var uidData = await (await fetch(getUidUrl)).json(); if (uidData.udid === udid) { // 验证成功,更新验证时间戳 cardKeyValidatedTime = Date.now(); // 保存卡密到本地存储 localStorage.setItem('savedCardKey', cardKey); document.body.classList.remove('hidden-content'); document.querySelector('.card-validation-container').style.display = 'none'; document.getElementById('nextPageContent').style.display = 'block'; document.getElementById('resultMessage').innerHTML = "卡密验证成功!"; return; } else { handleError(new Error('卡密已被使用'), 'card_used_error'); return; } } else { handleError(new Error('签名不匹配'), 'signature_mismatch_error'); return; } } else { handleError(new Error('卡密验证未通过'), 'default'); return; } } catch (error) { if (error.name === 'AbortError') { console.log('网络请求超时,进行第', retryCount + 1, '次重连尝试'); handleError(new Error('网络请求超时,请检查网络连接或稍后重试!'), 'network_error'); } else { console.log('网络请求出现其他错误,进行第', retryCount + 1, '次重连尝试'); handleError(error, 'network_error'); } retryCount++; } } console.log('已达到最大重连尝试次数,仍无法完成卡密验证,请检查网络及相关配置'); }