Spec-Zone.ru › Nim

std/base64

Исходный код Изменить

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

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

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

Основное использование

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

Пример:

import std/base64
let encoded = encode("Hello World")
assert encoded == "SGVsbG8gV29ybGQ="
Помимо строк, вы также можете кодировать списки целых чисел или символов:

Пример:

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

Декодирование данных

Пример:

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

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

Пример:

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

См. также

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

Процедуры

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

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

См. также:

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

Пример:

assert decode("SGVsbG8gV29ybGQ=") == "Hello World"
assert decode("  SGVsbG8gV29ybGQ=") == "Hello World"
Исходный код Изменить
proc encode[T: byte | 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

См. также:

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

Пример:

assert encode("Hello World") == "SGVsbG8gV29ybGQ="
assert encode(['n', 'i', 'm']) == "bmlt"
assert encode(@['n', 'i', 'm']) == "bmlt"
assert encode([1'u8, 2, 3, 4, 5]) == "AQIDBAU="
Исходный код Изменить
proc encode[T: SomeInteger and not byte](s: openArray[T]; safe = false): string {.
    ...deprecated: "use `byte` or `char` instead".}
Устарело: используйте `byte` или `char` вместо этого
Исходный код Изменить
proc encodeMime(s: string; lineLen = 75.Positive; newLine = "\r\n"; safe = false): string {.
    ...raises: [], tags: [], forbids: [].}

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

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

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

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

См. также:

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

Пример:

assert encodeMime("Hello World", 4, "\n") == "SGVs\nbG8g\nV29y\nbGQ="
Исходный код Изменить
proc initDecodeTable(): array[256, char] {....raises: [], tags: [], forbids: [].}
Исходный код Изменить

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

Spec-Zone.ru

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