Spec-Zone.ru › Elixir 1.10

Базовый

Этот модуль предоставляет функции кодирования и декодирования данных в соответствии со RFC 4648.

В данном документе определены часто используемые схемы кодирования Base 16, Base 32 и Base 64.

Алфавит Base 16

Значение Кодирование Значение Кодирование Значение Кодирование Значение Кодирование
0 0 4 4 8 8 12 C
1 1 5 5 9 9 13 D
2 2 6 6 10 A 14 E
3 3 7 7 11 B 15 F

Алфавит Base 32

Значение Кодирование Значение Кодирование Значение Кодирование Значение Кодирование
0 A 9 J 18 S 27 3
1 B 10 K 19 T 28 4
2 C 11 L 20 U 29 5
3 D 12 M 21 V 30 6
4 E 13 N 22 W 31 7
5 F 14 O 23 X
6 G 15 P 24 Y (заполнение) =
7 H 16 Q 25 Z
8 I 17 R 26 2

Алфавит Base 32 (расширенный шестнадцатеричный)

Значение Кодирование Значение Кодирование Значение Кодирование Значение Кодирование
0 0 9 9 18 I 27 R
1 1 10 A 19 J 28 S
2 2 11 B 20 K 29 T
3 3 12 C 21 L 30 U
4 4 13 D 22 M 31 V
5 5 14 E 23 N
6 6 15 F 24 O (заполнение) =
7 7 16 G 25 P
8 8 17 H 26 Q

Алфавит Base 64

END_OF_DOCUMENT_MARKER
Значение Кодировка Значение Кодировка Значение Кодировка Значение Кодировка
0 A 17 R 34 i 51 z
1 B 18 S 35 j 52 0
2 C 19 T 36 k 53 1
3 D 20 U 37 l 54 2
4 E 21 V 38 m 55 3
5 F 22 W 39 n 56 4
6 G 23 X 40 o 57 5
7 H 24 Y 41 p 58 6
8 I 25 Z 42 q 59 7
9 J 26 a 43 r 60 8
10 K 27 b 44 s 61 9
11 L 28 c 45 t 62 +
12 M 29 d 46 u 63 /
13 N 30 e 47 v
14 O 31 f 48 w (pad) =
15 P 32 g 49 x
16 Q 33 h 50 y

База 64 (URL и безопасный для имён файлов) алфавит

Значение Кодировка Значение Кодировка Значение Кодировка Значение Кодировка
0 A 17 R 34 i 51 z
1 B 18 S 35 j 52 0
2 C 19 T 36 k 53 1
3 D 20 U 37 l 54 2
4 E 21 V 38 m 55 3
5 F 22 W 39 n 56 4
6 G 23 X 40 o 57 5
7 H 24 Y 41 p 58 6
8 I 25 Z 42 q 59 7
9 J 26 a 43 r 60 8
10 K 27 b 44 s 61 9
11 L 28 c 45 t 62 -
12 M 29 d 46 u 63 _
13 N 30 e 47 v
14 O 31 f 48 w (pad) =
15 P 32 g 49 x
16 Q 33 h 50 y

Краткое описание

Функции

decode16(string, opts \\ [])

Декодирует строку, закодированную в формате base 16, в двоичную строку.

decode16!(string, opts \\ [])

Декодирует строку, закодированную в формате base 16, в двоичную строку.

decode32(string, opts \\ [])

Декодирует строку, закодированную в формате base 32, в двоичную строку.

decode32!(string, opts \\ [])

Декодирует строку, закодированную в формате base 32, в двоичную строку.

decode64(string, opts \\ [])

Декодирует строку, закодированную в формате base 64, в двоичную строку.

decode64!(string, opts \\ [])

Декодирует строку, закодированную в формате base 64, в двоичную строку.

encode16(data, opts \\ [])

Кодирует двоичную строку в строку, закодированную в формате base 16.

encode32(data, opts \\ [])

Кодирует двоичную строку в строку, закодированную в формате base 32.

encode64(data, opts \\ [])

Кодирует двоичную строку в строку, закодированную в формате base 64.

hex_decode32(string, opts \\ [])

Декодирует строку, закодированную в формате base 32 с расширенным шестнадцатеричным алфавитом, в двоичную строку.

hex_decode32!(string, opts \\ [])

Декодирует строку, закодированную в формате base 32 с расширенным шестнадцатеричным алфавитом, в двоичную строку.

hex_encode32(data, opts \\ [])

Кодирует двоичную строку в строку, закодированную в формате base 32 с расширенным шестнадцатеричным алфавитом.

url_decode64(string, opts \\ [])

Декодирует строку, закодированную в формате base 64 с URL- и безопасным для имён файлов алфавитом, в двоичную строку.

url_decode64!(string, opts \\ [])

Декодирует строку, закодированную в формате base 64 с URL- и безопасным для имён файлов алфавитом, в двоичную строку.

url_encode64(data, opts \\ [])

Кодирует двоичную строку в строку, закодированную в формате base 64 с URL- и безопасным для имён файлов алфавитом.

Функции

decode16(string, opts \\ [])

Характеристики

decode16(binary(), keyword()) :: {:ok, binary()} | :error

Декодирует строку, закодированную в формате base 16, в двоичную строку.

Параметры

Допустимые параметры:

  • :case - задаёт регистр символов, которые будут приняты при декодировании

Значения для :case могут быть:

  • :upper - допускаются только символы в верхнем регистре (по умолчанию)
  • :lower - допускаются только символы в нижнем регистре
  • :mixed - допускаются символы в смешанном регистре

Примеры

iex> Base.decode16("666F6F626172")
{:ok, "foobar"}

iex> Base.decode16("666f6f626172", case: :lower)
{:ok, "foobar"}

iex> Base.decode16("666f6F626172", case: :mixed)
{:ok, "foobar"}

decode16!(string, opts \\ [])

Характеристики

decode16!(binary(), keyword()) :: binary()

Декодирует строку, закодированную в формате base 16, в двоичную строку.

Параметры

Допустимые параметры:

  • :case - задаёт регистр символов, которые будут приняты при декодировании

Значения для :case могут быть:

  • :upper - допускаются только символы в верхнем регистре (по умолчанию)
  • :lower - допускаются только символы в нижнем регистре
  • :mixed - допускаются символы в смешанном регистре

Исключение ArgumentError генерируется, если заполнение некорректно или в строке присутствует неалфавитный символ.

Примеры

iex> Base.decode16!("666F6F626172")
"foobar"

iex> Base.decode16!("666f6f626172", case: :lower)
"foobar"

iex> Base.decode16!("666f6F626172", case: :mixed)
"foobar"

decode32(string, opts \\ [])

Характеристики

decode32(binary(), keyword()) :: {:ok, binary()} | :error

Декодирует строку, закодированную в формате base 32, в двоичную строку.

Параметры

Допустимые параметры:

  • :case - задаёт регистр символов, которые будут приняты при декодировании
  • :padding - задаёт, требуется ли заполнение

Значения для :case могут быть:

  • :upper - допускаются только символы в верхнем регистре (по умолчанию)
  • :lower - допускаются только символы в нижнем регистре
  • :mixed - допускаются символы в смешанном регистре

Значения для :padding могут быть:

  • true - требует заполнения входной строки до ближайшего кратного 8 (по умолчанию)
  • false - игнорирует заполнение из входной строки

Примеры

iex> Base.decode32("MZXW6YTBOI======")
{:ok, "foobar"}

iex> Base.decode32("mzxw6ytboi======", case: :lower)
{:ok, "foobar"}

iex> Base.decode32("mzXW6ytBOi======", case: :mixed)
{:ok, "foobar"}

iex> Base.decode32("MZXW6YTBOI", padding: false)
{:ok, "foobar"}

decode32!(string, opts \\ [])

Характеристики

decode32!(binary(), keyword()) :: binary()

Декодирует строку, закодированную в формате base 32, в двоичную строку.

Исключение ArgumentError генерируется, если заполнение некорректно или в строке присутствует неалфавитный символ.

Параметры

Допустимые параметры:

  • :case - задаёт регистр символов, которые будут приняты при декодировании
  • :padding - задаёт, требуется ли заполнение

Значения для :case могут быть:

  • :upper - допускаются только символы в верхнем регистре (по умолчанию)
  • :lower - допускаются только символы в нижнем регистре
  • :mixed - допускаются символы в смешанном регистре

Значения для :padding могут быть:

  • true - требует заполнения входной строки до ближайшего кратного 8 (по умолчанию)
  • false - игнорирует заполнение из входной строки

Примеры

iex> Base.decode32!("MZXW6YTBOI======")
"foobar"

iex> Base.decode32!("mzxw6ytboi======", case: :lower)
"foobar"

iex> Base.decode32!("mzXW6ytBOi======", case: :mixed)
"foobar"

iex> Base.decode32!("MZXW6YTBOI", padding: false)
"foobar"

decode64(string, opts \\ [])

Характеристики

decode64(binary(), keyword()) :: {:ok, binary()} | :error

Декодирует строку, закодированную в формате base 64, в двоичную строку.

Принимает параметр ignore: :whitespace , который пропустит все пробельные символы в входной строке.

Принимает параметр padding: false , который пропустит заполнение из входной строки.

Примеры

iex> Base.decode64("Zm9vYmFy")
{:ok, "foobar"}

iex> Base.decode64("Zm9vYmFy\n", ignore: :whitespace)
{:ok, "foobar"}

iex> Base.decode64("Zm9vYg==")
{:ok, "foob"}

iex> Base.decode64("Zm9vYg", padding: false)
{:ok, "foob"}

decode64!(string, opts \\ [])

Характеристики

decode64!(binary(), keyword()) :: binary()

Декодирует строку, закодированную в формате base 64, в двоичную строку.

Принимает параметр ignore: :whitespace , который пропустит все пробельные символы в входной строке.

Принимает параметр padding: false , который пропустит заполнение из входной строки.

Исключение ArgumentError генерируется, если заполнение некорректно или в строке присутствует неалфавитный символ.

Примеры

iex> Base.decode64!("Zm9vYmFy")
"foobar"

iex> Base.decode64!("Zm9vYmFy\n", ignore: :whitespace)
"foobar"

iex> Base.decode64!("Zm9vYg==")
"foob"

iex> Base.decode64!("Zm9vYg", padding: false)
"foob"

encode16(data, opts \\ [])

Характеристики

encode16(binary(), keyword()) :: binary()

Кодирует двоичную строку в строку, закодированную в формате base 16.

Параметры

Допустимые параметры:

  • :case - задаёт регистр символов, которые будут использованы при кодировании

Значения для :case могут быть:

  • :upper - используются символы в верхнем регистре (по умолчанию)
  • :lower - используются символы в нижнем регистре

Примеры

iex> Base.encode16("foobar")
"666F6F626172"

iex> Base.encode16("foobar", case: :lower)
"666f6f626172"

encode32(data, opts \\ [])

Характеристики

encode32(binary(), keyword()) :: binary()

Кодирует двоичную строку в строку, закодированную в формате base 32.

Параметры

Допустимые параметры:

  • :case - задаёт регистр символов, которые будут использованы при кодировании
  • :padding - задаёт, применять ли заполнение

Значения для :case могут быть:

  • :upper - используются символы в верхнем регистре (по умолчанию)
  • :lower - используются символы в нижнем регистре

Значения для :padding могут быть:

  • true - заполнить выходную строку до ближайшего кратного 8 (по умолчанию)
  • false - опустить заполнение из выходной строки

Примеры

iex> Base.encode32("foobar")
"MZXW6YTBOI======"

iex> Base.encode32("foobar", case: :lower)
"mzxw6ytboi======"

iex> Base.encode32("foobar", padding: false)
"MZXW6YTBOI"

encode64(data, opts \\ [])

Характеристики

encode64(binary(), keyword()) :: binary()

Кодирует двоичную строку в строку, закодированную в формате base 64.

Принимает параметр padding: false , который опустит заполнение из выходной строки.

Примеры

iex> Base.encode64("foobar")
"Zm9vYmFy"

iex> Base.encode64("foob")
"Zm9vYg=="

iex> Base.encode64("foob", padding: false)
"Zm9vYg"

hex_decode32(string, opts \\ [])

Характеристики

hex_decode32(binary(), keyword()) :: {:ok, binary()} | :error

Декодирует строку, закодированную в формате base 32 с расширенным алфавитом шестнадцатеричных символов, в двоичную строку.

Параметры

Допустимые параметры:

  • :case - задаёт регистр символов, которые будут приняты при декодировании
  • :padding - задаёт, требуется ли заполнение

Значения для :case могут быть:

  • :upper - допускаются только символы в верхнем регистре (по умолчанию)
  • :lower - допускаются только символы в нижнем регистре
  • :mixed - допускаются символы в смешанном регистре

Значения для :padding могут быть:

  • true - требует заполнения входной строки до ближайшего кратного 8 (по умолчанию)
  • false - игнорирует заполнение из входной строки

Примеры

iex> Base.hex_decode32("CPNMUOJ1E8======")
{:ok, "foobar"}

iex> Base.hex_decode32("cpnmuoj1e8======", case: :lower)
{:ok, "foobar"}

iex> Base.hex_decode32("cpnMuOJ1E8======", case: :mixed)
{:ok, "foobar"}

iex> Base.hex_decode32("CPNMUOJ1E8", padding: false)
{:ok, "foobar"}

hex_decode32!(string, opts \\ [])

Характеристики

hex_decode32!(binary(), keyword()) :: binary()

Декодирует строку, закодированную в формате base 32 с расширенным алфавитом шестнадцатеричных символов, в двоичную строку.

Исключение ArgumentError генерируется, если заполнение некорректно или в строке присутствует неалфавитный символ.

Параметры

Допустимые параметры:

  • :case - задаёт регистр символов, которые будут приняты при декодировании
  • :padding - задаёт, требуется ли заполнение

Значения для :case могут быть:

  • :upper - допускаются только символы в верхнем регистре (по умолчанию)
  • :lower - допускаются только символы в нижнем регистре
  • :mixed - допускаются символы в смешанном регистре

Значения для :padding могут быть:

  • true - требует заполнения входной строки до ближайшего кратного 8 (по умолчанию)
  • false - игнорирует заполнение из входной строки

Примеры

iex> Base.hex_decode32!("CPNMUOJ1E8======")
"foobar"

iex> Base.hex_decode32!("cpnmuoj1e8======", case: :lower)
"foobar"

iex> Base.hex_decode32!("cpnMuOJ1E8======", case: :mixed)
"foobar"

iex> Base.hex_decode32!("CPNMUOJ1E8", padding: false)
"foobar"
END_OF_DOCUMENT_MARKER

hex_encode32(data, opts \\ [])

Характеристики

hex_encode32(binary(), keyword()) :: binary()

Кодирует двоичную строку в строку, закодированную в системе счисления по основанию 32 с расширенным шестнадцатеричным алфавитом.

Параметры

Допустимые параметры:

  • :case — определяет регистр символов при кодировании
  • :padding — определяет, применять ли заполнение

Значения для :case могут быть:

  • :upper — использует заглавные буквы (по умолчанию)
  • :lower — использует строчные буквы

Значения для :padding могут быть:

  • true — добавляет заполнение, округляя длину до ближайшего кратного 8 (по умолчанию)
  • false — не добавляет заполнение

Примеры

iex> Base.hex_encode32("foobar")
"CPNMUOJ1E8======"

iex> Base.hex_encode32("foobar", case: :lower)
"cpnmuoj1e8======"

iex> Base.hex_encode32("foobar", padding: false)
"CPNMUOJ1E8"

url_decode64(string, opts \\ [])

Характеристики

url_decode64(binary(), keyword()) :: {:ok, binary()} | :error

Декодирует строку, закодированную в base 64 с алфавитом, безопасным для URL и имён файлов, в двоичную строку.

Принимает параметр ignore: :whitespace, который проигнорирует все пробельные символы во входной строке.

Принимает параметр padding: false, который проигнорирует заполнение во входной строке.

Примеры

iex> Base.url_decode64("_3_-_A==")
{:ok, <<255, 127, 254, 252>>}

iex> Base.url_decode64("_3_-_A==\n", ignore: :whitespace)
{:ok, <<255, 127, 254, 252>>}

iex> Base.url_decode64("_3_-_A", padding: false)
{:ok, <<255, 127, 254, 252>>}

url_decode64!(string, opts \\ [])

Характеристики

url_decode64!(binary(), keyword()) :: binary()

Декодирует строку, закодированную в base 64 с алфавитом, безопасным для URL и имён файлов, в двоичную строку.

Принимает параметр ignore: :whitespace , который проигнорирует все пробельные символы во входной строке.

Принимает параметр padding: false , который проигнорирует заполнение во входной строке.

Исключение ArgumentError генерируется, если заполнение некорректно или в строке присутствует символ, не входящий в алфавит.

Примеры

iex> Base.url_decode64!("_3_-_A==")
<<255, 127, 254, 252>>

iex> Base.url_decode64!("_3_-_A==\n", ignore: :whitespace)
<<255, 127, 254, 252>>

iex> Base.url_decode64!("_3_-_A", padding: false)
<<255, 127, 254, 252>>

url_encode64(data, opts \\ [])

Характеристики

url_encode64(binary(), keyword()) :: binary()

Кодирует двоичную строку в строку, закодированную в base 64 с алфавитом, безопасным для URL и имён файлов.

Принимает параметр padding: false , который не добавляет заполнение в выходную строку.

Примеры

iex> Base.url_encode64(<<255, 127, 254, 252>>)
"_3_-_A=="

iex> Base.url_encode64(<<255, 127, 254, 252>>, padding: false)
"_3_-_A"

© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.10.4/Base.html

Spec-Zone.ru

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