- 저작권 침해가 우려되는 컨텐츠가 포함되어 있어
글보내기 기능을 제한합니다.
네이버는 블로그를 통해 저작물이 무단으로 공유되는 것을 막기 위해, 저작권을 침해하는 컨텐츠가 포함되어 있는 게시물의 경우 글보내기 기능을 제한하고 있습니다.
상세한 안내를 받고 싶으신 경우 네이버 고객센터로 문의주시면 도움드리도록 하겠습니다. 건강한 인터넷 환경을 만들어 나갈 수 있도록 고객님의 많은 관심과 협조를 부탁드립니다.
지난 URL 메타 문자 포스트에서 간단한 URL Encoding 이 되는 모습을 보았습니다.
보통 인코딩 하면 다들 동영상 인코딩 (.avi .wmv --> .mp4) 를 생각하실 겁니다. 즉 변환을 하는 것을 인코딩이라고 할 수 있는데, 특히 웹에서는 다양한 인코딩으로 다양한 정보를 암호화해서 보내는 특징이 있습니다. 그리고 그 반대가 디코딩이겠죠.
웹에서는 보통 ASCII 코드 URL Encoding HTML Encoding Base 64 Encoding MS script
등의 인코딩을 사용하는 데 특히 HTML Encoding 방식과 Base 64 Encoding 방식이 보안에서 중요한 부분입니다. HTML Encoding 같은 경우에는 XSS (Cross Site Scripting) 취약점의 대응방안으로 사용할 수 있는 인코딩이죠.
지난 포스트에서 소개한 Paros 에는 이러한 인코딩 / 디코딩을 자동으로 해주는 기능이 탑재되어 있답니다.
(Paros 인코딩/디코딩 기능)
이런 자동화된 툴이 있지만 여기서는 Base 64 Encoding 방법에 대해서 알아보도록 하겠습니다.
Base64 Encoding 특징 - 2진 데이터를 ASCII 형태의 텍스트로 표현 가능 - Web 인증 중 기본인증에 사용 - 끝 부분의 padding(==)으로 식별 가능 - 64개의 문자를 사용 (영문 대(26) , 영문 소(26), 숫자(10), +, -) -데이터를 6bit 단위로 표현
--출처:I2sec-Web Security
ABC 를 예로 들어서 인코딩을 해보겠습니다. 1. ABC --> Total Bit : 24bit 2. 2진수로 변경
A: 01000001 B: 01000010 C: 01000011
3. 6bit 로 나누기
010000 / 010100 / 001001 / 000011 /
* 예를들어 6bit 로 나눌 때 /001 이렇게 3자리만 남았을때 6자리로 맞춰주고 0을 채워주면 됩니다.
4. 10진수로 변환
16 / 20 / 9 / 3
5. Base 64 테이블 값으로 변경
* Base 64 테이블 값
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+- (padding =)
위의 64개의 값을 A 부터 - 까지 1부터 64까지 차례대로 번호를 매겨서 그에 해당하는 문자로 변경하면 됩니다.
Q (16) , U (20), J (9), D (3)
--> QUJD
6. 총 비트수에 나누기 3을 해서 나오는 나머지 갯수로 패딩(=)을 붙여줍니다. ABC 는 패딩이 없군요.
즉 --> QUJD 가 나오게 됩니다.
Paros로 확인을 해보겠습니다.
맞게 변환이 되었군요. 자신의 아이디나 단어들을 이용해서 인코딩 연습을 해보시면 좋은 공부가 될 것입니다. 반대로 하면 그게 디코딩이겠죠?
--By Flow |
작성하신 에 이용자들의 신고가 많은 표현이 포함되어 있습니다.
다른 표현을 사용해주시기 바랍니다.
건전한 인터넷 문화 조성을 위해 회원님의 적극적인 협조를 부탁드립니다.
더 궁금하신 사항은 고객센터로 문의하시면 자세히 알려드리겠습니다.