리눅스에서 베이스64 인코딩과 디코딩
- Get link
- X
- Other Apps
by joviansummer
original STEEMIT post: https://steemit.com/blog/@joviansummer/64
바이너리 데이터를 베이스64 인코딩을 통해서 출력가능한 문자열 형태로 변환할 수 있습니다. 반대로 디코딩을 하면 문자열로부터 바이너리 데이터를 얻을 수 있습니다. @ayogom님의 포스트에서 블럭체인에 직접 이미지 데이터를 올리는 예시를 볼 수 있는데, 아래의 링크입니다.
리눅스에서는 베이스64 인코딩 디코딩을 하는 명령어를 제공하기 때문에 아래와 같이 간단하게 시험해볼 수 있습니다. base64라는 명령을 사용합니다.
# test.jpg 파일을 베이스64 인코딩하여 출력
base64 test.jpg
# 인코딩 결과를 test.b64 파일에 저장
base64 test.jpg > test.b64
디코딩은 아래와 같이 할 수 있습니다.
# test.b64 파일을 베이스64 디코딩해서 test2.jpg로 저장
base64 -d test.b64 > test2.jpg
용량이 크지 않은 바이너리 데이터를 스팀 블럭체인에 직접 기록하고 싶다면 베이스64 인코딩을 해서 포스팅하면 되겠습니다. 복원할 때는 인코딩된 문자열을 파일로 저장해서 디코딩하면 되겠죠.
한가지 유의할 점이 있는데요. 스팀 블럭의 최대 크기가 64kB이고, 인코딩된 결과는 원본 바이너리 데이터보다 용량이 1.5배 이상 늘어날 수 있으므로 32kB 이내의 파일에 대해서 적용하는 것이 좋겠습니다.
조금 더 큰 파일도 될 것 같긴 하지만 스팀 블럭이 사용자 포스트 본문 외에 다양한 정보들이 함께 있기 때문에 64kB를 전부 사용자 데이터로 채울 수는 없습니다. 그러므로 32kB 이하 정도로 생각하시는 것이 나을 것 같습니다.
@joviansummer의 스팀 프로젝트
스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다.
(https://steemitwallet.com/~witnesses)
jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다.
jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기
Posted through the AVLE Dapp (https://avle.io)
- Get link
- X
- Other Apps
Comments
Post a Comment