문자열 맨 뒤에 Equal(=)이 몇 개 이어져 있다면 Base64 Encoding을 의심해 봐야 한다.
Base64 Encoding은 모든 8비트 문자를 64개의 문자로 표시하기 위한 것이다.
64개의 문자를 표현하는 데에는 6비트가 필요하며,
64개의 문자는 다음과 같다.
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
Base64의 Encoding 방법은 다음과 같다.
1. Encoding될 문자열을 6비트로 끊어준 다음, 끝에 모자란 비트를 0으로 채운다.
2. 6비트로 나뉘어진 각 부분을 위의 테이블[A-Za-z+/=] 을 이용해 변환한다.
3. (전체 비트수 % 3)개의 ‘=’을 뒤에 붙여준다.
위의 문자열을 한 번 디코딩하면,
ZEdocGMybHpkMkZ5YldsdVozVndjSEp2WW14bGJVZHZkRzkwYUdWT1pYaDBV
SEp2WW14bGJRPT0=
디코딩을 두 번 하면
dGhpc2lzd2FybWluZ3VwcHJvYmxlbUdvdG90aGVOZXh0UHJvYmxlbQ==
디코딩을 세 번 하면
thisiswarmingupproblemGototheNextProblem
다음 레벨의 인증코드가 나온다. J