Spec-Zone.ru › Nim 1

base64

Этот модуль реализует кодировщик и декодер base64.

Нестабильный API.

Base64 — это техника кодирования и декодирования, используемая для преобразования двоичных данных в формат ASCII-строки. Каждый символ Base64 представляет ровно 6 бит данных. Три 8-битных байта (то есть в общей сложности 24 бита) могут быть представлены четырьмя 6-битными символами Base64.

Основные примеры использования

Кодирование данных

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"

URL-безопасный Base64

import base64
doAssert encode("c\xf7>", safe = true) == "Y_c-"
doAssert encode("c\xf7>", safe = false) == "Y/c+"

См. также

  • модуль hashes для эффективных вычислений хеш-значений для различных типов Nim
  • модуль md5 реализует алгоритм MD5 checksum
  • модуль sha1 реализует кодировщик и декодер sha1

Процедуры

proc encode[T: SomeInteger | char](s: openArray[T]; safe = false): string

Кодирует s в представление base64.

Эта процедура кодирует открытый массив (массив или последовательность) целых чисел или символов.

Если safe равно true , то кодирование будет выполнено с использованием стандартного алфавита URL-безопасного и безопасного для файловой системы, где - заменяет + , а _ заменяет / .

  • https://en.wikipedia.org/wiki/Base64#URL_applications
  • https://tools.ietf.org/html/rfc4648#page-7

См. также:

  • процедура 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; safe = false): string {...}{.raises: [], tags: [].}

Кодирует s в представление base64.

Эта процедура кодирует строку.

Если safe равно true , то кодирование будет выполнено с использованием стандартного алфавита URL-безопасного и безопасного для файловой системы, где - заменяет + , а _ заменяет / .

  • https://en.wikipedia.org/wiki/Base64#URL_applications
  • https://tools.ietf.org/html/rfc4648#page-7

См. также:

  • процедура encode для кодирования открытого массива
  • процедура decode для декодирования строки

Пример:

assert encode("Hello World") == "SGVsbG8gV29ybGQ="
Исходный код Редактировать
proc encodeMime(s: string; lineLen = 75; newLine = "\c\n"): string {...}{.raises: [],
    tags: [].}

Кодирует s в представление base64 в виде строк. Используется в формате MIME электронной почты, используйте lineLen и newline.

Эта процедура кодирует строку в соответствии со спецификацией MIME.

См. также:

  • процедура encode для кодирования строки
  • процедура decode для декодирования строки

Пример:

assert encodeMime("Hello World", 4, "\n") == "SGVs\nbG8g\nV29y\nbGQ="
Исходный код Редактировать
proc initDecodeTable(): array[256, char] {...}{.raises: [], tags: [].}
Исходный код Редактировать
proc decode(s: string): string {...}{.raises: [ValueError], tags: [].}

Декодирует строку s в представлении base64 обратно в её исходную форму. Пробелы в начале строки пропускаются.

См. также:

  • процедура encode для кодирования открытого массива
  • процедура encode для кодирования строки

Пример:

assert decode("SGVsbG8gV29ybGQ=") == "Hello World"
assert decode("  SGVsbG8gV29ybGQ=") == "Hello World"
Исходный код Редактировать

© 2006–2021 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/base64.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API