pat coding

images BASE64 encode, decode 본문

Etc

images BASE64 encode, decode

uuukpyo 2020. 4. 21. 14:14
728x90

BASE64란?

  • BASE64는 8비트 바이너리 데이터를 텍스트로 변경하는 인코딩 방식 중 하나로 ASCII 영역의 문자들로만 이루어진 문자열로 바꾸는 것입니다. 
  • 어떤 문자와 기호를 쓰느냐에 따라 다양하게 구성될 수 있지만, 잘 알려진 것은 모두 처음 62개는 A-Z, a-z, 0-9 를 사용하고 있으며 마지막 두 개를 어떤 기호를 쓰느냐의 차이만 있습니다.
  • 64진법으로 데이터를 6bit 단위로 표현한 것 입니다.

 

사용 이유?

  • 신뢰할 수 없는 통신 채널을 통해 바이너리 데이터를 안전하게 전송할 수 있기 때문
  • BASE64는 HTML 또는 Email과 같이 문자를 위한 Media에 Binary Data를 포함해야 될 필요가 있을 때, 포함된 Binary Data가 시스템 독립적으로 동일하게 전송 또는 저장되는 걸 보장하기 위해 사용합니다.
  • 특정 스트링을 암호화하여 서버에 전달했을 때에 #, @과 같은 기호들이 생겨 데이터 전송과 연동에 어려운 부분이 있기 때문에               BASE64를 이용하여 인코딩한 후 디코딩하여 원래의 텍스트로 변환하여 사용합니다.

 

ruby 활용 예제

- encode

img = "테스트.png"
img_file = File.open(img, 'rb').read
img_encode = Base64.encode64(img_file)

puts img_encode
= iVBORw0KGgoAAAANSUhEUgAAApIAAAI2CAYAAA ... GcL2CXqkAAAAASUVORK5CYII=
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAApIAAA ... GcL2CXqkAAAAASUVORK5CYII=" />

-decode 
파일로 저장

File.open("테스트_파일.jpg", 'wb') do |file|
        file.write(Base64.decode64(img_encode))
      end

 

728x90

'Etc' 카테고리의 다른 글

CURL 통신  (1) 2020.08.07
Watir 란?  (1) 2020.01.15
[HTML] 속성(id, class, name)  (0) 2019.12.23
[ Xpath ] Xpath란?  (0) 2019.12.02
[T-MAP API]검색어를 통한 지도검색  (4) 2019.11.12
Comments