---
title: Ключ шифрования — простыми словами
description: Что такое ваш ключ шифрования TSync, почему он должен оставаться ровно таким, какой есть, и как сохранить его безопасную копию — понятным языком.
product: TSync Intelligence 11.3.6
language: ru
canonical: https://docs.tsync.pro/ru/encryption-key-explained/
source: https://docs.tsync.pro/llms.txt
---

# Ключ шифрования — простыми словами

**Что это такое:** единственный секретный пароль, который принадлежит именно вашей установке TSync и больше никому. TSync использует его, чтобы запирать конфиденциальные учётные данные, которые он хранит за вас.

**Почему это важно:** это как главный ключ от сейфа внутри вашей системы. Пока этот ключ у вас, TSync может открыть сейф и пользоваться тем, что внутри. Если вы когда-нибудь поменяете ключ, сейф закроется навсегда — а то, что внутри, будет потеряно. Поэтому золотое правило короткое: **задайте один раз, сохраните копию, никогда не меняйте.**

## Что именно он защищает

Ключ шифрует данные подключений и учётные записи, которые нужны TSync для общения с другими сервисами, например:

- пароли для отправки и получения почты (SMTP / IMAP)
- платёжные подключения (вроде Stripe) и их ключи
- ссылки для входа через Google или Microsoft
- другие сторонние логины, которые TSync хранит от вашего имени

> **Чего он НЕ касается:** паролей, под которыми входят ваши сотрудники и клиенты. Они защищены отдельно, односторонним методом, который не может обратить вспять даже сам TSync — а это как раз то, что нужно для паролей входа. Чтобы это работало, вам ничего делать не нужно.

## Где он находится

Ключ хранится в одном файле настроек, `application/config/app-config.php`, в строке, которая выглядит так:

```php
define('APP_ENC_KEY', 'a8K3jD9mP2xQ7vR4nL5wT8sF1bC6yU9z');
```

Эта длинная мешанина букв и цифр и есть сам ключ.

## Три правила, которые стоит запомнить

### 1. Длина должна быть ровно 32 символа

Не 31 и не 33 — ровно 32. Если длина неверная, TSync не запустится и сообщит вам:

```
Encryption key length should be 32 characters
```

Если вы когда-нибудь увидите это сообщение, исправление простое — вернуть ключу длину 32 символа.

### 2. Используйте только обычные буквы, цифры и простые символы

Заглавные и строчные буквы и цифры — идеальный вариант. Избегайте чего-то экзотического — никаких переносов строк, табуляций или необычных символов — чтобы ключ оставался читаемым везде.

### 3. Никогда не меняйте его после установки — это самое главное

Вот правило, которое действительно важно. Всё, что TSync запер исходным ключом, можно отпереть **только** этим же ключом. Поменяйте ключ — и всё это станет нечитаемым: вы разом потеряете сохранённые почтовые пароли, платёжные ключи и подключения Google/Microsoft.

Не переживайте — такое случается, только если ключ меняют намеренно. Обычная работа, обновления и резервные копии его никогда не трогают.

Если ключ когда-нибудь утечёт (например, случайно попадёт в публичный репозиторий с кодом) — тогда, и только тогда, его стоит заменить, понимая, что это означает начать с чистого листа:

1. Сгенерируйте новый ключ.
2. Заново вручную введите учётные данные каждой интеграции (почтовые пароли, платёжные ключи и т. д.).
3. Попросите всех, кто пользуется входом через Google/Microsoft, заново подключить свою учётную запись.

## Создание ключа (только при первой установке)

### Лёгкий путь: пусть установщик сделает это сам

Когда вы устанавливаете TSync и завершаете шаг с базой данных, установщик **автоматически создаёт надёжный случайный ключ за вас**. Вам не нужно и пальцем шевелить — просто загляните потом в `app-config.php` и убедитесь, что в строке `APP_ENC_KEY` есть значение.

### Вручную (если вдруг понадобится)

На Linux или macOS эта команда выведет свежий ключ из 32 символов:

```bash
LC_ALL=C tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32
```

Или, с помощью PHP, эта команда тоже выведет ключ:

```bash
php -r "echo bin2hex(random_bytes(16));"
```

(Есть сайты, которые генерируют ключи, но используйте их только для тестов — никогда для настоящей, рабочей системы.)

## Сохраните безопасную копию — именно об этом часто забывают

Пожалуйста, сохраните этот ключ в надёжном месте **сегодня**. Лучший дом для него — менеджер паролей (например, 1Password или Bitwarden). Вот сценарий, которого стоит избежать: у вас есть идеальная резервная копия базы данных, вы теряете сервер, восстанавливаете базу на новом — но без исходного ключа ни одну из запертых учётных записей прочитать уже нельзя. Одной резервной копии недостаточно; ключ — это вторая её половина.

Полная резервная копия на самом деле означает три вещи вместе:

1. Резервную копию базы данных
2. Копию файла `application/config/app-config.php` (в нём хранится ключ)
3. Копию вашей папки `uploads/` (логотипы, вложения)

## Как посмотреть свой текущий ключ

Чтобы просто увидеть ключ в его строке:

```bash
grep "APP_ENC_KEY" application/config/app-config.php
```

Чтобы убедиться, что длина правильная (должно вывести `32`):

```bash
php -r "include 'application/config/app-config.php'; echo strlen(APP_ENC_KEY) . PHP_EOL;"
```

## Что произойдёт, если ключ перестанет работать

Начиная с **v11.1.1** ответ короткий: **система откажется сохранять** и объяснит почему.

Это важнее всего для **национальных идентификационных номеров** (CNP / IDNP) в карточке сотрудника. Это
персональные данные особой категории, поэтому они хранятся только в зашифрованном виде.

Если ключ отсутствует или не работает, а вы сохраняете сотрудника **с** заполненным CNP или IDNP:

- сотрудник **не сохраняется вообще** — даже частично;
- вы получаете сообщение об этом и о том, что нужно проверить;
- остальные введённые данные остаются в форме.

Сохранение сотрудника **без** идентификатора работает как обычно. Отказ касается только тех данных,
которые он защищает.

> **Почему отказ, а не «сохранить что получится»?** До v11.1.1 идентификатор молча заменялся пустым
> значением, а последние четыре цифры оставались на экране — карточка выглядела заполненной, а номера уже
> не было. Об этом узнавали только тогда, когда номер кому-то понадобился. Сотрудник, которого пришлось
> сохранить дважды, — это неудобство; исчезнувший персональный номер не восстановить.

**Уже есть такие записи?** Страница **Здоровье** (Настройки → Здоровье) показывает их двумя отдельными
группами, потому что это разные проблемы:

- **хранятся открыто** — номер на месте, но без защиты. Это исправимо: откройте сотрудника и введите номер
  заново, он сохранится зашифрованным.
- **утрачены** — остались только последние четыре цифры. **Никакое исправление их не вернёт**; нужно
  спросить сотрудника и ввести номер заново.

## Смотрите также

- [Установка и первая настройка](quick-installation-getting-started-tutorial.md)
- [Потеряли ключ? Обратитесь в поддержку за советом](support.md)
