ENCRYPT()
DSQL, PSQL
ENCRYPT (input
[USING <algorithm>] [MODE <mode>]
KEY key
[IV iv] [<ctr_type>] [CTR_LENGTH ctr_length]
[COUNTER initial_counter] )
<algorithm> ::= <block_cipher> | <stream_cipher>
<block_cipher> ::=
AES | ANUBIS | BLOWFISH | KHAZAD | RC5
| RC6 | SAFER+ | TWOFISH | XTEA
<stream_cipher> ::= CHACHA20 | RC4 | SOBER128
<mode> ::= CBC | CFB | CTR | ECB | OFB
<ctr_type> ::= CTR_BIG_ENDIAN | CTR_LITTLE_ENDIAN
| Параметр | Описание |
|---|---|
input |
Выражение строкового типа или |
algorithm |
Алгоритм шифрования.Поддерживаются как блочные, так и потоковые алгоритмы. |
mode |
Режим шифрования.Обязателен для блочных алгоритмов шифрования. |
key |
Ключ шифрования. |
iv |
Вектор инициализации (IV). Должен быть указан для всех блочных алгоритмов шифрования за исключением |
ctr_type |
Порядок байтов счётчика.Может быть указан только в режиме |
ctr_length |
Длина счётчика в байтах.Может быть указана только в режиме |
initial_counter |
Начальное значение счётчика.Может быть указана только для алгоритма |
BLOB или VARBINARY
Функция ENCRYPT шифрует данные с использованием симметричного шифра.
|
Note
|
|
Особенности различных алгоритмов и режимов выходят за рамки данного справочника по языку.
| Алгоритм | Размер ключа (байт) | Размер блока (байт) | Примечание |
|---|---|---|---|
Блочное шифрование |
|||
|
16, 24, 32 |
16 |
|
|
16 - 40, с шагом 4 |
16 |
|
|
8 - 56 |
8 |
|
|
16 |
8 |
|
|
8 - 128 |
8 |
|
|
8 - 128 |
16 |
|
|
16, 24, 32 |
16 |
|
|
16, 24, 32 |
16 |
|
|
16 |
8 |
|
Поточное шифрование |
|||
|
16, 32 |
1 |
Размер (IV) составляет 8 или 12 байт.Для размера 8 initial_counter - это 64-битное целое число, для размера 12 - 32-битное. |
|
5 - 256 |
1 |
|
|
4x |
1 |
Размер (IV) составляет 4y байт, длина не зависит от размера ключа. |
ENCRYPTselect encrypt('897897' using sober128 key 'AbcdAbcdAbcdAbcd' iv '01234567')
from rdb$database;