BASE64でエンコード・デコードするには (base64)

各プログラミング言語でのBASE64エンコードまたはデコードする方法。

Go言語

BASE64にエンコードするには encoding/base64 パッケージの base64.StdEncoding.Encode または base64.StdEncoding.EncodeToString を使う。

base64.StdEncoding.Encode での例

package main

import "os"
import "encoding/base64"

func main() {
    src := []byte("あいうえおかきくけこ")
    dst := make([]byte, base64.StdEncoding.EncodedLen(len(src)))
    base64.StdEncoding.Encode(dst, src)
    os.Stdout.Write(dst)
    // => 44GC44GE44GG44GI44GK44GL44GN44GP44GR44GT
}

base64.StdEncoding.EncodeToString での例

package main

import "fmt"
import "encoding/base64"

func main() {
    src := []byte("あいうえおかきくけこ")
    dst := base64.StdEncoding.EncodeToString(src)
    fmt.Printf(dst)
    // => 44GC44GE44GG44GI44GK44GL44GN44GP44GR44GT
}

どちらもどんなに長くなっても途中で改行を入れることはないみたい。

PHP

echo base64_encode("あいうえおかきくけこ");
// => 44GC44GE44GG44GI44GK44GL44GN44GP44GR44GT

echo base64_decode("44GC44GE44GG44GI44GK44GL44GN44GP44GR44GT");
// => あいうえおかきくけこ

base64_encode はどんなに長くなっても途中で改行を入れることはないみたい。

Python

python2 の場合の例

import base64

# エンコード
print base64.encodestring(u"あいうえおかきくけこ".encode("utf8")).decode("ascii")
# => 44GC44GE44GG44GI44GK44GL44GN44GP44GR44GT

# この書き方でもできる
print "あいうえおかきくけこ".encode("base64")

# デコード
print base64.decodestring("44GC44GE44GG44GI44GK44GL44GN44GP44GR44GT")
# => あいうえおかきくけこ

python3 の場合の例

import base64
print(base64.encodestring("あいうえおかきくけこ".encode("utf8")).decode("ascii"))
# => 44GC44GE44GG44GI44GK44GL44GN44GP44GR44GT

# python3では encode("base64") ではできない

print(base64.decodestring("44GC44GE44GG44GI44GK44GL44GN44GP44GR44GT".encode("ascii")).decode("utf8"))
# => あいうえおかきくけこ

Perl

MIME::Base64 を使う。

use utf8;
use Encode qw/decode_utf8 encode_utf8/;
use MIME::Base64;

my $encoded = encode_base64(encode_utf8("あいうえおかきくけこ"));
print($encoded);
# => 44GC44GE44GG44GI44GK44GL44GN44GP44GR44GT

my $decoded = decode_base64($encoded);
print($decoded . "\n");
# => あいうえおかきくけこ

encode_base64 に2つ目の引数として空文字列を渡すと、長くなっても改行されなくなる。

MIME::Base64 | perldoc.jp
http://perldoc.jp/docs/modules/MIME-Base64-2.12/Base64.pod

sh (シェルスクリプト)

base64コマンド参照。

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。