function checkPass( password )
{
var count1 = 3, count2 = 5;
var sumof1 = 0, sumof2 = 0;
var charlist = "BHFE8";
for( i = 0; i < password.length; ++i ) { sumof1 += ( password.charCodeAt( i ) * count1 ); count1++; }
for( i = 0; i < charlist.length; ++i ) { sumof2 += ( charlist.charCodeAt( i ) * count2 ); count2++; }
(sumof1 == sumof2) ? setTimeout( "location.replace( 'http://www.enigmagroup.org/missions/basics/js/10/index.php?password=" + encodeURI(password) + "' );", 0 ) : alert( "Sorry, but the password was incorrect." );
}
인자인 password는 내가 입력한 패스워드. 중간에 포문이 두개 있는데 하나는 내가 입력한 password값
으로 반복문을 돌리고, 다른 반복문은 내부의 변수 "BHFE8"으로 반복문을 돌린다.
charCodeAt은 아스키코드값으로 변환하는 것으로 'a'이면 97이 나올것이다.
그 값을 sumof1변수와 sumof2에 각각 더해서 집어넣고, 나중에 반복문을 다 돌고
나와서 sumof1과 sumof2가 서로 같으면 통과한다.
sumof1을 계산할때와 sumof2를 계산할때 서로 count값이 다르다.
어떻게 할까 고민하다가 이런식으로 코드를 짰다.
"""function checkPass( password ) { var count1 = 3, count2 = 5; var sumof1 = 0, sumof2 = 0; var charlist = "BHFE8"; for( i = 0; i < password.length; ++i ) { sumof1 += ( password.charCodeAt( i ) * count1 ); count1++; } for( i = 0; i < charlist.length; ++i ) { sumof2 += ( charlist.charCodeAt( i ) * count2 ); count2++; } (sumof1 == sumof2) ? setTimeout( "location.replace( 'http://www.enigmagroup.org/missions/basics/js/10/index.php?password=" + encodeURI(password) + "' );", 0 ) : alert( "Sorry, but the password was incorrect." ); }""" import sys charlist = "BHFE8"; count1 = 3 count2 = 5 sumof1 = 0 sumof2 = 0 for i in range(0,len(charlist)): sys.stdout.write(chr(ord(charlist[i])*count2/count1)) #자바스크립트로는 for( i = 0; i < charlist.length; ++i ) { document.write(String.fromCharCode( charlist.charCodeAt( i ) * count2/count1 )); count2++;count1++; } 정도가 될것같다.(맞는지는 모르겟음) count2 += 1 count1 += 1 print ''
'webhacking > client' 카테고리의 다른 글
Enigma Group basic/javascript 12 (0) | 2014.11.01 |
---|---|
Enigma Group basic/javascript 11 (0) | 2014.11.01 |
Enigma Group basic/javascript 9 (0) | 2014.11.01 |
Enigma Group basic/javascript 1~8 (0) | 2014.11.01 |
suninatas level 7 (0) | 2014.10.30 |