pat coding
images BASE64 encode, decode 본문
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