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 |