base64について (UNIXコマンドやRubyライブラリの簡単な使用例)
[履歴] [最終更新] (2017/07/30 23:07:53)

概要

base64エンコーディングまたはデコーディングとは、任意のデータを64種類の文字 0-9,a-z,A-Z,'+','/' (10+26x2+2=64) で表現し直すことまたは表現されたものをもとのデータに戻すことです。上記64種類の文字は7bitで表現可能なASCII文字の範囲内にあるため、電子メールでの通信など、マルチバイト文字やバイナリデータを扱えない環境で使用されることがあります。なお、'='はエンコードおよびデコードにおけるパディングとして使用されます。base64コマンドやRubyのbase64ライブラリを用いてこのエンコードおよびデコードを行うことができます。

base64コマンドの使用例

エンコード

$ echo "あいうえお" | base64
gqCCooKkgqaCqA==  # Shift_JIS環境での実行例

デコード

$ echo "gqCCooKkgqaCqA==" | base64 -d  ←macOS の base64 は `-D` です。
あいうえお

base64ライブラリ (Ruby) の使用例

sample.rb

#!/usr/bin/ruby
# -*- coding: utf-8 -*-
require 'base64'

utf = "あいうえお"
puts Base64.encode64(utf)

encoded = "44GC44GE44GG44GI44GK"
p Base64.decode64(encoded) # UTF-8でエンコードされた文字列が返る
                           # (デコード結果であるユニコード文字列ではない)
# UTF-8でエンコードされた文字列をデコードし即座にShift_JISでエンコードしたものを返す
# (Rubyには文字コードに関するdecodeがない)
puts Base64.decode64(encoded).encode('Shift_JIS', 'UTF-8')

実行例 (環境はShift_JIS)

$ ruby sample.rb
44GC44GE44GG44GI44GK
"\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86\xE3\x81\x88\xE3\x81\x8A"
あいうえお
関連ページ
    正規表現 import java.util.regex.Pattern; import java.util.regex.Matcher; class Main { public static void main(String args[]) { { // 完全一致 Pattern pattern = Pattern.com
    概要 CI/CD ツールの一つである TeamCity のインストール手順等を記載します。 インストール こちらからダウンロードします。.tar.gz をダウンロードした場合は以下のように起動します。 Tomcat を起動するために Java8 が必要なため、インストールします。 sudo yum install java-1.8.0-openjdk-devel export JAVA_H