본문 바로가기

 

4번 문제에요.

배점은 300점, 분야는 컴퓨팅 문제같네요.

 

 

이상한 16진수와 함께 Password 입력창, 소스보기 버튼이 있네요.

 

 

소스를 보니 대충 저기 보이는 16진수 문자열은

10000000~99999999 랜덤 숫자 + salt_for_you

의 sha1 해시값의 sha1 해시값의...

해서 500번 돌린 값을 보여주는 건가보네요.

 

SHA1를 복호화 시킬수는 없으니 저기에 보이는 해시값을 보고 비밀번호를 찾아내야하는 문제인가봐요.

 

그렇다는건 레인보우 테이블을 만들어서 풀어야 하겠군요!

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

import sha1 from "sha1";

import fs from "fs";

 

for(var i:number = 10000000; i <= 99999999; i++)

{

    var str: string = i + "salt_for_you";

    var hash: string = str;

 

    for(var i2: number = 0; i2 < 500; i2++) hash = sha1(hash);

 

    fs.writeFileSync("./table.table", str + " " + hash + "\n", {encoding: "utf-8", flag: "a+"});

 

}

 

console.log("끝");

Colored by Color Scripter

cs

 

typescript를 이용해서 레인보우 테이블을 만드는 스크립트를 만들었어요.

 

이제 이걸 돌리고 며칠 자고 일어나보면 테이블이 완성되어 있을거에요.

 

 

테이블이 완성됬으면 값을 찾아야겠죠?

 

 

보여지는 해시값은

1285a5433e6f98b99b2ca24421cd1ba14ecbb004

이니 이걸 테이블에서 찾아보면?

 

 

81183343salt_for_you .

 

 

이제 이걸 입력해보면?

 

빠밤!

 

문제가 풀렸네요.

 

 

고생한 컴퓨터에게 박수를...

댓글