> For the complete documentation index, see [llms.txt](https://ru.gentee.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ru.gentee.org/stdlib/crypto.md).

# Криптография

Ниже описаны криптографические функции.

* [AESDecrypt( str key, buf data ) buf](/stdlib/crypto.md#aesdecrypt-str-key-buf-data-buf)
* [AESEncrypt( str key, buf data ) buf](/stdlib/crypto.md#aesencrypt-str-key-buf-data-buf)
* [Md5( buf | str data ) buf](/stdlib/crypto.md#md-5-buf-or-str-data-buf)
* [RandomBuf( int size ) buf](/stdlib/crypto.md#randombuf-int-size-buf)
* [Sha256( buf | str data ) buf](/stdlib/crypto.md#sha-256-buf-or-str-data-buf)

## Функции

### AESDecrypt( str key, buf data ) buf

Функция *AESDecrypt* расшифровывает содержимое переменной типа *buf* с использованием ключа шифрования *key*. Зашифрованные данные должны быть получены с помощью функции *AESEncrypt*. Функция возвращает переменную типа *buf* с расшифрованными данными.

```go
buf encrypted = AESDecrypt(`my password`, encrypted)
```

### AESEncrypt( str key, buf data ) buf

Функция *AESEncrypt* шифрует содержимое переменной типа *buf* используя алгоритм AES-256. Параметр *key* является ключом шифрования. Функция возвращает переменную типа *buf* с зашифрованными данными. Используйте функцию *AESDecrypt* для расшифровки данных.

```go
buf crypted = AESEncrypt(`my password`, buf(`Test message`))
```

### Md5(buf|str data) buf

Функция *Md5* возвращает MD5 хэш переменной типа *buf* или *str*.

### RandomBuf(int size) buf

Функция *RandomBuf* возвращает переменную типа *buf*, которая содержит последовательность случайных байт указанного размера.

### Sha256(buf|str data) buf

Функция *Sha256* возвращает SHA256 хэш переменной типа *buf* или *str*.
