hackthissite/basic/6번 풀이
네트워크 보안자 Sam이 자신의 패스워드를 암호화 했습니다.
그런데 이 암호화 시스템은 공개적으로 사용이 가능합니다? ㅎㅎ
우리는 그의 암호화된 패스워드를 손에 넣었고 그것은 '72ch<<>j'입니다.
그럼 암호화 시스템을 사용해서 '72ch<<>j'가 나오는 값을 패스워드에 넣으면 문제는 풀릴 것이다.
일단 암호화 시스템에 아무 숫자나 넣어보자 생각했다.
기왕이면 규칙적인 숫자를 넣어보고 싶어서 1234를 넣어보았다.
1234를 넣자 Your encrypted string is: '1357'이라는 값이 나왔다.
흠... 뭔가 규칙이 보이는 것 같다.
첫번째는 그대로 두번째는 +1을 한 숫자가 세번째는 +2를 한 숫자가 나왔다.
다음으로 abcd를 넣어보았다.
이번에는 'aceg'가 나왔다.
숫자를 넣었을 때와 같은 규칙이다.
이것으로 암호화 시스템의 규칙이 보이기 시작했다.
그렇다면 암호화 시스템을 넣어서 값이 '72ch<<>j'가 나오는 값을 유추해 볼 수 있을 것이다.
풀이에 도움을 주기 위해 아스키 코드 표를 들고 왔다.
'72ch<<>j'
첫 번째 7은 그대로 7이고
두 번째 2는 -1을 한 1이다.
세 번째 c는 -2를 한 a이고
네 번째 h는 -3을 한 e이다.
다섯 번째 <는 -4를 한 8이고
여섯 번째 <는 -5를 하여 7이다.
일곱 번째 >는 -6을 한 8이고
마지막 여덟 번째 j는 -7을 한 c이다.
위에서 구한 암호화 시키기 전 패스워드를 합치면
'71ae878c'가 나온다
확인을 위해 암호화 시스템에 '71ae878c'을 넣고 암호화를 하면
Sam이 암호화한 패스워드가 나온다.
검증도 끝났으니 패스워드를 입력하면 문제는 풀리게 된다.
암호화 시스템의 규칙을 찾는 것이 이번 문제를 풀 수 있는 열쇠였다고 생각한다.