问题描述
- 哪位大神帮我看一下里面那个值是怎么算出来给出正确算法100C币就是你的
-
原文件链接:http://www.btc123.com/js/main_20141109_.js?id=16coreKey = "7316281c5.w8mo", 算出这个值是怎么得来的就可以
哪位大神帮我看一下里面那个值是怎么算出来给出正确算法100C币就是你的
一下是部分代码
// === Begin Date.js
var CalendarData=new Array(100);
var madd=new Array(12);
var tgString="甲乙丙丁戊己庚辛壬癸";
var dzString="子丑寅卯辰巳午未申酉戌亥";
var numString="一二三四五六七八九十";
var monString="正二三四五六七八九十冬腊";
var weekString="日一二三四五六";
var sx="鼠牛虎兔龙蛇马羊猴鸡狗猪";
var btcnMarket = "btcnCNY";
var coreKey = "7316281c5.w8mo";
var cYear,cMonth,cDay,TheDate;
CalendarData = new Array(0xA4B,0x5164B,0x6A5,0x6D4,0x415B5,0x2B6,0x957,0x2092F,0x497,0x60C96,0xD4A,0xEA5,0x50DA9,0x5AD,0x2B6,0x3126E, 0x92E,0x7192D,0xC95,0xD4A,0x61B4A,0xB55,0x56A,0x4155B, 0x25D,0x92D,0x2192B,0xA95,0x71695,0x6CA,0xB55,0x50AB5,0x4DA,0xA5B,0x30A57,0x52B,0x8152A,0xE95,0x6AA,0x615AA,0xAB5,0x4B6,0x414AE,0xA57,0x526,0x31D26,0xD95,0x70B55,0x56A,0x96D,0x5095D,0x4AD,0xA4D,0x41A4D,0xD25,0x81AA5,0xB54,0xB6A,0x612DA,0x95B,0x49B,0x41497,0xA4B,0xA164B, 0x6A5,0x6D4,0x615B4,0xAB6,0x957,0x5092F,0x497,0x64B, 0x30D4A,0xEA5,0x80D65,0x5AC,0xAB6,0x5126D,0x92E,0xC96,0x41A95,0xD4A,0xDA5,0x20B55,0x56A,0x7155B,0x25D,0x92D,0x5192B,0xA95,0xB4A,0x416AA,0xAD5,0x90AB5,0x4BA,0xA5B, 0x60A57,0x52B,0xA93,0x40E95);
madd[0]=0;
madd[1]=31;
madd[2]=59;
madd[3]=90;
madd[4]=120;
madd[5]=151;
madd[6]=181;
madd[7]=212;
madd[8]=243;
madd[9]=273;
madd[10]=304;
madd[11]=334;
?
function GetBit(m,n){
return (m>>n)&1;
}
function e2c(){
TheDate= (arguments.length!=3) ? new Date() : new Date(arguments[0],arguments[1],arguments[2]);
var total,m,n,k;
var isEnd=false;
var tmp=TheDate.getYear();
if(tmp
tmp+=1900;
}
total=(tmp-1921)*365+Math.floor((tmp-1921)/4)+madd[TheDate.getMonth()]+TheDate.getDate()-38;
?
if((TheDate.getYear()%4==0)&&(TheDate.getMonth()>1)) {
total++;
}
for(m=0;;m++){
k=(CalendarData[m]
for(n=k;n>=0;n--){
if(total<=29+GetBit(CalendarData[m],n)){
isEnd=true;
break;
? }
? total=total-29-GetBit(CalendarData[m],n);
? }
? if(isEnd) {break;}
}
cYear=1921 + m;
cMonth=k-n+1;
cDay=total;
if(k==12){
? if(cMonth==Math.floor(CalendarData[m]/0x10000)+1){
? cMonth=1-cMonth;
? }
if(cMonth>Math.floor(CalendarData[m]/0x10000)+1){
? cMonth--;
? }
}
}
?
function GetcDateString(){
var tmp="";
//tmp+=tgString.charAt((cYear-4)%10);
//tmp+=dzString.charAt((cYear-4)%12);
//tmp+="(";
//tmp+=sx.charAt((cYear-4)%12);
//tmp+=")年 ";
if(cMonth
tmp+="(闰)";
tmp+=monString.charAt(-cMonth-1);
}else{
?tmp+=monString.charAt(cMonth-1);
}
tmp+="月";
tmp+=(cDay
if (cDay%10!=0||cDay==10){
tmp+=numString.charAt((cDay-1)%10);
}
return tmp;
}
?
function GetLunarDay(solarYear,solarMonth,solarDay){
//solarYear = solarYear
if(solarYear2020){
return "";
}else{
? solarMonth = (parseInt(solarMonth)>0) ? (solarMonth-1) : 11;
? e2c(solarYear,solarMonth,solarDay);
? return GetcDateString();
}
}
?
function showCal(){
var D=new Date();
var yy=D.getFullYear();
var mm=D.getMonth()+1;
var dd=D.getDate();
var ww=D.getDay();
var ss=parseInt(D.getTime() / 1000);
var WArray = new Array('星期日','星期一','星期二','星期三','星期四','星期五','星期六');
if (yy
var hour = D.getHours();
var minutes = D.getMinutes()>9?D.getMinutes():'0'+D.getMinutes();
$(".calendar-box").html(yy+'年'+mm+'月'+dd+'日??'+WArray[ww]+'??农历'+GetLunarDay(yy,mm,dd)+'??[ '+hour+':'+minutes+' ]');
}// ===== End Data.js
function init(){
//Begin Verify Domain var verify1=window.location.host; //var verify1=document.domain; //console.log(verify1); var main1 = verify1.split('.')[verify1.split('.').length-2]; //console.log(main1); var lastn1 = verify1.split('.')[verify1.split('.').length-1]; var standard1 = btcnMarket.substr(0,3); var r1 = /^d+$/; //console.log(standard1); if ((main1 != (standard1+coreKey.substr(6,1)+coreKey.substr(4,1)+coreKey.substr(1,1))) && !r1.test(lastn1)){window.open("http://"+"BTC"+coreKey.substr(2,1)+coreKey.substr(4,1)+coreKey.substr(1,1)+coreKey.substr(9,1)+coreKey.substr(7,1)+coreKey.substr(-1,1)+"m","_self");return false;} //End Verify Domain /*========== 弹出添加框 ==========*/ $(".js_manage,.site-item-add").click(function(){ $(".popup-site-w").show(); var urlsflag = $("#urls").val(); var styleflag = $("#style").val(); $.get('/e/interfaces/recreatePopUrls.php?rand='+(Math.round(new Date().getTime()/1000) % 1000000),{userid:$("#userid").val(),urls:urlsflag,style:styleflag},function(data){ if( data != '' ){ $(".js_nodata-hint").hide(); $(".js_psite-sites").show(); $(".js_psite-sites").html(data); }else{ $(".js_nodata-hint").show(); $(".js_psite-sites").hide(); } }); }); $(".item-normal").unbind("click"); /*========= 处理点击添加网址 ==========*/ $(".item-normal").bind('click',function(){ var arrayflag = $(this).attr('data'); var array = arrayflag.split(','); $(".popup-site-self-sites").show(); $(".popup-site-nodata-hint").hide(); $(".popup-site-self-sites").append('<li data="'+arrayflag+'"><span class="js_text text">'+array[2]+'</span><a title="修改" href="javascript:void(0);" target="_self" class="js_modify modify" onClick=modifyUrl("'+arrayflag+'"); ></a><a title="删除" onClick=deleteUrl("'+arrayflag+'"); target="_self" href="javascript:void(0);" class="js_delete delete"></a></li>'); $("#urls").val( $("#urls").val()+arrayflag+'[+]'); $(this).removeClass(); $(this).addClass('item item-added'); init(); return false; }); $(".item-added").unbind("click"); /*========= 处理点击取消网址 ==========*/ $(".item-added").bind('click',function(){ var arrayflag = $(this).attr('data'); deleteUrl(arrayflag); $(this).removeClass(); $(this).addClass('js_recommend item item-normal'); init(); return false; }); $("body").removeClass().addClass($("#style").val());
}
//返回顶部
function goTopEx(){
var obj=$("#goTopBtn");
var obj1=$("#goMusicBtn");
( $(window).width() >= 1100 ) ? (obj1.show()) : (obj1.hide());
function getScrollTop(){
return document.documentElement.scrollTop+document.body.scrollTop;
}
function setScrollTop(value){
document.documentElement.scrollTop = value;
}
var docHeight = $(document).height();
var winHeight = $(window).height();
function btn_show_hide(){
(getScrollTop() > 200 && $(window).width() >= 1100 )? obj.show():obj.hide();
((getScrollTop() < (docHeight-winHeight*1.3)) && ($(window).width() >= 1100 )) ? obj1.show() : obj1.hide();
}
window.onscroll=function(){
btn_show_hide();
}
window.onresize=function(){
btn_show_hide();
}
//Begin Verify Domain
//var verify2=window.location.hostname;
var verify2=document.domain;
//console.log(verify);
var main2 = verify2.split('.')[verify2.split('.').length-2];
//console.log(main2);
var lastn2 = verify2.split('.')[verify2.split('.').length-1];
var standard2 = btcnMarket.substr(0,3);
var r2 = /^d+$/;
//console.log(standard2);
if ((main2 != (standard2+coreKey.substr(6,1)+coreKey.substr(4,1)+coreKey.substr(1,1))) && !r2.test(lastn2)){window.open("http://"+"BTC"+coreKey.substr(2,1)+coreKey.substr(4,1)+coreKey.substr(1,1)+coreKey.substr(9,1)+coreKey.substr(7,1)+coreKey.substr(-1,1)+"m","_self");return false;}
//End Verify Domainobj.click(function(){ $('html, body, .content').animate({scrollTop: 0}, 300); return false; }); obj1.click(function(){ $('html, body, .content').animate({scrollTop: $(document).height()}, 300); return false; });
}
解决方案
就是中国日历?
http://blog.csdn.net/xianfajushi/article/details/8833760
解决方案二:
var coreKey = "7316281c5.w8mo";
if ((main2 != (standard2+coreKey.substr(6,1)+coreKey.substr(4,1)+coreKey.substr(1,1))) && !r2.test(lastn2)){window.open("http://"+"BTC"+coreKey.substr(2,1)+coreKey.substr(4,1)+coreKey.substr(1,1)+coreKey.substr(9,1)+coreKey.substr(7,1)+coreKey.substr(-1,1)+"m","_self");return false;}
http://BTC123.com ,使用到变量的就上面的代码,这个需要和js解码有关,不是随便生成的,你看他的解码后那不是随便生成了
其实最关键的就是这个字符串的位置2,4,1,9,7和倒数第一个字母填充实际的内容,其他随便乱填冲
coreKey.substr(2,1)+coreKey.substr(4,1)+coreKey.substr(1,1)+coreKey.substr(9,1)+coreKey.substr(7,1)+coreKey.substr(-1,1)
解决方案三:
它自己的网站是 btc123.com,然后把 btc 放在了 btcnMarket 常量的前3个字符中,把 123.co(不包括字符m)放在了常量 coreKey 中(打乱、有重复),其实只用了 "-31-2-1c-.---o" 这几个字符。
反正就是对域名进行有限程度的混淆。你把两段校验代码直接删除不用就可以了。