# base64

- マニュアル
- 標準ライブラリ
- 索引

検索
分類:

このモジュールは Base64 エンコーダーとデコーダーの実装です。

この API は不安定です。

Base64 はバイナリデータから ASCII 文字列形式への変換に用いるエンコードとデコードの技術です。Base64 の各桁は必ず 6 bit データ表現になります。したがって、 3 桁の 8 bit バイト (つまり、合計 24 bit) は Base64 において 4 桁の 6 bit 表現になります。

# 基本の用法

## データのエンコード

    import base64
    let encoded = encode("Hello World")
    assert encoded == "SGVsbG8gV29ybGQ="

文字列以外にも整数、または文字から成るリストをエンコードできます。

    import base64
    let encodedInts = encode([1,2,3])
    assert encodedInts == "AQID"
    let encodedChars = encode(['h','e','y'])
    assert encodedChars == "aGV5"

## データのデコード

    import base64
    let decoded = decode("SGVsbG8gV29ybGQ=")
    assert decoded == "Hello World"

# 関連

- hashes モジュール は様々な Nim 型で使える効率的なハッシュ値の算出方法
- md5 モジュール MD5 チェックサム・アルゴリズムの実装
- sha1 モジュール SHA1 エンコーダーとデコーダーの実装

# プロシージャ

    proc encode[T: SomeInteger | char](s: openArray[T]; lineLen = 75; newLine = ""): string

  Base64 形式で `s` をエンコードします。`lineLen` 文字の後に、 `newline` (改行文字) を追加します。

  このプロシージャは整数、または文字から成る無蓋配列 (無蓋やシーケンス) をエンコードします。

  関連:

  - encode プロシージャ は文字列のエンコードをします
  - decode プロシージャ は文字列のデコードをします

  用例:

      assert encode(['n', 'i', 'm']) == "bmlt"
      assert encode(@['n', 'i', 'm']) == "bmlt"
      assert encode([1, 2, 3, 4, 5]) == "AQIDBAU="

  ソース 編集

    proc encode(s: string; lineLen = 75; newLine = ""): string {...}{.raises: [], tags: [].}

  Base64 形式で `s` をエンコードします。`lineLen` 文字の後に、 `newline` (改行文字) を追加します。

  このプロシージャは文字列をエンコードします。

  関連:

  - encode プロシージャ は無蓋配列のエンコードをします
  - decode プロシージャ は文字列のデコードをします

  用例:

      assert encode("Hello World") == "SGVsbG8gV29ybGQ="
      assert encode("Hello World", 3, "\n") == "SGVs\nbG8g\nV29ybGQ="

  ソース 編集

    proc decode(s: string): string {...}{.raises: [], tags: [].}

  Base64 形式の文字列 `s` をデコードして元形式へ復元します。頭文字にあるホワイトスペースは無視します。

  関連:

  - encode プロシージャ は無蓋配列のエンコードをします
  - encode プロシージャ は文字列のエンコードをします

  用例:

      assert decode("SGVsbG8gV29ybGQ=") == "Hello World"
      assert decode("  SGVsbG8gV29ybGQ=") == "Hello World"

  ソース 編集