'BASE64'에 해당되는 글 2건

  1. 2015.10.04 base64 -1 : base64 응용 -
  2. 2015.10.03 base64 - 0 : 이론 -

base64 -1 : base64 응용 -

연습 2015. 10. 4. 13:18

 base64는 파일의 구성을 256가지가 아닌 64가지로 표현하는 방법이다.


 그래서 파일의 내용은 그대로 남아있다는 특징을 가진다.


 Decoder만 존재한다면, 해당 파일을 어떻게든 얻을 수 있다는 뜻이다.(깨져있을 수 있다는 점은 제외)


 예을 들어서 이미지 파일을 표현하고자 한다고 하자.


 보통 html로 이미지를 불러온다면, 다음같은 소스를 사용한다.


 


 <img src="이미지 파일 경로" />


 여기서 src을 '이미지 파일 경로'로 처리하는게 아니라.


 base64로 얻어진 파일 경로를 사용한다.(Data URI)


 그렇게하면, 서버에 파일데이터를 데이터베이스 문서파일로 넣을 수 있게 된다.


 예제:

 이미지파일을 base64로 변경시킨 값.


 base 64:

R0lGODlhYAATAPcAAAAAAP///0BDSj9CSj5BST1ASDw/Rjo9RTg7Qjg6Qjc6Qk9CQ0w/QUtAQkU9

QE1ESEM8QElCRkdCRkVDSTs7Qbm5vMDAw+Pj5dPT1c7O0Pr6+/j4+fPz9PHx8u/v8O3t7ujo6ebm

5+Hh4t3d3mBhaHV2fISFioOEiZCRlouMkYqLkIiJjkVHT0dJUUZIUExOVo+QlK+wtKanq6SlqaGi

pp6fo1FTWlZYX1tdZF5gZ11fZlxeZWRmbTk8RDs+Rjw/R0NGTkJFTUlMVEhLU1haYFtdY2VnbW9x

d2xudGpscnZ4fnJ0eoGDicXGycLDxsHCxby9wLq7vrm6vbe4u7a3urO0t7Gyta+ws6qrrqiprGdp

bnByd3FzeHp8gYuNkoiKj4eJjoWHjISGiz5BSEVIT0dKUU5RWE1QV1FUW09SWVJVXFhbYldaYUFE

SkRHTUxPVUpNU05RV1NWXF9iaF5hZ2Jla2hrcWtudIGDh3+BhZGTl4yOkp+hpZianpWXm9fY2tXW

2NPU1s/Q0s7P0c3O0MnKzMjJy8fIysTFx7/AwlteY2VobW5xdpqcn6yusaaoq+rr7OPk5eHi49/g

4drb3NHS08/Q0fP09Orr6+jp6f/9/P7y7e9kM+9rPfF3TPKCW/WggutTIOtVIexVIuxWI+xXJOxY

JehWJdxRI+1YJt9UJdZRJO1bKe5cKu1cK9JRJs1PJu5eLepcLM5RJ+9fLtVVKe9gL+RcLudfMO1i

MtdYLu9kNNpbMdxdMshULtNZMbZMKsNTLu9nOdZcM7BMK+9pO/BsP7VSMrBPMe9vRPBxRr1YN6BL

MPB0SrdWOPF/WZhPOPGAWvKDXfKIZPOLaPOMafOWdvWjh/WkiPewmPe2oPi+qvjEsvrLu/rNvvzk

3Pzm351IL6lUOqNROJZKM4hGM49PPYNIOIVLOv739X1ENYdOP3VDN29DOHlKP3dMQf/7+mRFP2ZJ

RF0/O19DQFE+PVdFRf39/fj4+Pb29vT09O/v7////wAAAAAAAAAAACH5BAEAAPwALAAAAABgABMA

AAj/AAUIHEiwoMGDCBMqXMiwYcEBECNClCdumC1buJatmyCxo8ePIEOKHEmy5ANnF1Om7PWupMuX

MGNGJECTpj1etHLq3EnLXM2fQIMGFWLEjNCjBF4YKYq0qdMCUAtI+BWrqtWrVt1FhcokgNevAWYU

yOR1DtQ1T75OMhsD7FclUHkYAkvoSNQhbjcgwlFAkFcZUI941Tdk69ZxVql1iuXpUyxh1DhVvRVh

a1e3YceWLXDGg1sNa9pihvtFA+YAfaDixaxvTQmvkAYUoPLXsIHbC2S1agUqADhj8AJI8xZg2+5W

0G7fXmTFiukAUax0MQDCKx0DfryG0CPJKxY8VhJ5/83XnE6Se14/XMES6WseA2W8arAy4msUA5S8

ciGDL4CGOMoFaAA6x1WTTje7gLOJMtlocs1xugh4mz5eyaFcdQFch4VXVxiARHN73EaHVyAoF4hX

lpBxWxtQeIXJGPEFoM9tSHjVgQF4eFVBGF5ZIaFyx7Ai5JBEFinkAhJSGICFt2F4XRde3ePIGwKO

GECJBtgQJREBwqFkEjHOaMAY8o0ZQgD4nHgPlz8a4IuRrnyzSTJGshJPkhVeaN1tVXyFTxZUikji

bYx4NYKEaQWwQphZ0uBVJbftARYUP/pgaTCpZKppMcFFo+mn9Fgqqg+XeKWGqBjmIOodJ3oViQ2W

5v9AoqVbGDqqpU14BUYLp93DiKVBeOZVHbdaesCxyHyqaTPPKKtpA8dGe0CpAaARLYY6SHvAESJ4

VcWxOpB4bBpRpiEtEMLa4QJmgywhbQ1eDaLtvOeYYu+9rGjDTS733lvLvNN6Ze2x2B5QiVdiHKCE

V4CAK+6xgHh1CBDH/tBnAJj8sG4A+UQcAAraeuGVFAAf0MPJDJxSysorC+PVNCyzTM7JNJ9MrQ00

Y7hDD1N4JcIXGHjlxMk7kEgzEugFcMEjfPzxlQk9sODVJWzk418SNacwcs01I+A1AsyQIvbY1mDD

ythiq+LA12xz4FUaX2OoCAJaJA3WFl4rQiLbMNij/dU9jXjthlccILCCV/uc8bUKOrLNdgKQJwDB

LKNUbvnllrMT+eYJuB2AGZFjWATkJXSL+AmRF0Ei51oUYncGJEQ+eAAcQG6BVxgYADnjAVTA+e+Q

1/OKKMQXb7wo5QCv/PI3kBD78sDr8Dz01CvvOAIOEBPK9txvv0o714cv/vjkl2/++V4roP766s8T

DizbowKMOhSwb//9+Oev//78949/QAA7


 이렇게 되어있을걸 그대로 html에 사용하면, 안된다.


 앞에 어떤 데이터인지 제대로 명시해주어야된다.


 현재 Tistory 로고는 gif구조이다.


 그래서 data:image/gif;을 앞에 붙여줘야된다.


 그리고, base64로 구성된것이다. 라고 알려 줘야된다.


 처음 부분은 이렇게 된다.

 data:image/gif;base64,R0lGODlhYAATAPcAAAAAA...


 적용하면, 다음과 같다.

 


 이걸 응용하여, 데이터를 주고 받거나 다운 받을 수도 있다.

 예제


 이렇게하여 데이터를 인터넷에서 다운로드, 저장, 공유를 할 수 있게 된다.


 단, 안전성에서 완벽하다. 라고 할 수는 없을 것이다.(전송 중 1bit가 오류났을 경우, 정정할 수 없으며, 오류를 탐지할 수도 없다.)


 이것만 제외하면, 파일을 글로 저장하여 쓸 수 있게 된다.

 인쇄물을 읽어서 컴퓨터에게 전송 할 수 있는 기술이 있다면, base64로 만든 인쇄물을 이용해서 보관 할 수도 있을 것이다.(그럴 필요성은 없겠지만...)

'연습' 카테고리의 다른 글

Google Brotli - Brotli.exe -  (0) 2015.10.06
- 잡소리 - 단일 처리와 병렬 처리  (0) 2015.10.05
base64 - 0 : 이론 -  (0) 2015.10.03
OpenCL 프로그래밍 공부 -시작-  (0) 2015.10.02
CSS3 -3D Flip Animation-  (0) 2015.09.30
Posted by JunkMam
,

base64 - 0 : 이론 -

연습 2015. 10. 3. 23:15

 base64란, 컴퓨터가 표현하고 있는 문자 방식(1byte로 표현할 수 있는 최댓값)은 256가지이다.


 하지만, 이런 경우를 생각해보자.


 문서(문자열로만 구성된 파일)을 보내는데, 대상이 문서로 표현할 수 없는 데이터로 이루어 져있다면, 어떻게 보낼 것인가?


 여기서 모든 플랫폼에 서로 대응하는 형태를 가져야될 것이다.


 이것을 64가지(숫자, 알파벳 대/소문자, 기타 기호 몇개)로 표현하는 방식이다.


 이 방식의 문제점은 용량의 증가가 존재한다는 문제가 있다.(약 33%가량이 증가한다고 한다.)


 이 방식은 메일 및 기타 방식에 사용되며, 암호와는 전혀 관계가 없다.


 그냥 인코딩하는 것이다. 암호는 알고리즘과 키가 밝혀졌을때, 최대한 그 암호 문서를 늦게 풀어내는 것이 목적이다.(공개키) 하지만, Base64는 남에게 숨길려고 드는 목적을 가지고 있지 않다.


 심지어, Base64는 키라는 존재도, 특정한 존재에게만 열리도록 목적을 가지고 있지 않다.


 1. Base64는 암호용 알고리즘이 아니다.


 그렇다고 Base64가 암축용으로 만들어진 것도 아니다. 오히려 용량이 늘었으면 늘었지(256가지로 표현된 데이터를 64가지로 표현하기 때문에 늘어날 수 밖에 없다.) 줄어들 경우는 없다.


 2. Base64는 압축용 알고리즘이 아니다.


 그렇다면, 왜 Base64가 존재하는가?


 그것은 쉽게 이렇게 들수 있다.


 파일은 올릴 수 없고, 게시판에 이미지 파일을 올려야 될 경우에.

 Base64을 이용하면, 쉽게 사용이 가능하다.


 Base64와 HTML5을 이용한 비디오 출력


 다음과 같은 효과를 얻을 수 있으며, 음악, 사진, 동영상, 파일등 모두다 가능하다.


 그 외에도 메일(MIME)에도 사용이 가능하다.

'연습' 카테고리의 다른 글

- 잡소리 - 단일 처리와 병렬 처리  (0) 2015.10.05
base64 -1 : base64 응용 -  (0) 2015.10.04
OpenCL 프로그래밍 공부 -시작-  (0) 2015.10.02
CSS3 -3D Flip Animation-  (0) 2015.09.30
ffprobe 사용법 -영상 정보 보기-  (0) 2015.09.30
Posted by JunkMam
,