2008년 2월 2일 토요일

UUENCODE 알고리즘

UUENCODE/UUDECODE 알고리즘
바이너리 화일을 일반 텍스트 문자로 나타내는 방법에는 몇가지가 있습니다. 예를 들어 Intel의 Hex포맷이나 mine 그리고 지금 설명하려는 UUENCODE와 UUDECODE가 있습니다.


UUENCODE(이하UUE)는 쉽게 말해서 3Byte의 바이너리 데이타를 4Byte의 텍스트 데이타로 바꾸는 것입니다. Intel의 Hex의 경우 1Byte의 바이너라가 2Byte의 텍스트로 바뀌는 UUE의 경우 3Byte의 바이너리가 4Byte의 텍스트로 바뀌므로 효율면에서 더 좋습니다.

변환하는 알고리즘을 살펴 보죠


16진수 0x14 0x0F 0xA8
=2진수 00010100 00001111 10101000 입니다.
이렇게 변환한 2진수 숫자 24개를 연달아 늘어 놓습니다.
000101000000111110101000
이 24개의 숫자를 6개씩 끊어 놓아봅니다.
000101
000000
111110
101000
이 숫자 앞에 00을 두개씩 추가 해줍니다.
00000101
00000000
00111110
00101000
이 숫자를 다시 한번 16진수로 변환하면
0x05 0x40 0x3E 0x28
이 숫자에 0x20씩 다 더해줍니다.
(예외 만약 0인경우 0x00+0x20이 아니라 0x60으로 됩니다.)
0x25 0x60 0x5E 0x48 = %`^H (in Text)

출처 : Tong - handay2766님의 개발자료통

댓글 없음: