우선 인코딩(Encoding)은 암호화와 유사하지만 데이터를 다른 형태로 변환하는 것이다. 그러나 인코딩은 데이터의 기밀성을 고려하지 않으며, 누구나 디코딩하여 원문을 구할 수 있다. Base64 Encoding이란 8비트 이진 데이터를 각기 다른 문자인코딩에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 것을 말한다. 따라서 Base64 로 Encoding 된 문자열은 총64개의 문자(a-z, A-Z, 0-9, +/) 로 이루어져 있다. ( padding 값으로 = 가 포함될 수도 있다.) 평문을 Base64로 인코딩시키는 방법은 아래와 같다. Base64 동작 방식 1. 각 문자를 ASCII(Decimal = 10진수)로 변환 후, Binary 로 바꾼다. (각 ..
Cyrpto/Computer Science
ROT13은 굉장히 단순한 암호알고리즘이다. Rotate by 13의 약자이며 13자리 뒤로 밀어내는 고대 카이사르 암호의 일종이다. ROT의 종류는 ROT13, ROT26, ROT47이 있다. ROT26은 평문인데..이게왜...ㅋㅋ.. 우선 알파멧은 기본적으로 A-Z 까지 26개가 있다. 이것을 13개씩 쪼개면 A-M까지와 N-Z가 나오는데 각 위치에 맞는 순서끼리 서로 치환하는 것이다. a -> n b -> o 이렇게 서로 치환된다. $python3 -c 'import string; print(" ".join(list(string.ascii_lowercase)[:13]))' a b c d e f g h i j k l m $python3 -c 'import string; print(" ".join(li..