# Форматы файлов

Если не используется реляционная база данных, программа &kmymoney; сохраняет все финансовые данные пользователя в файле с расширением `.kmy`. При запуске &kmymoney; будет открыт последний открытый файл (если только это не было запрещено с помощью соответствующего параметра командной строки). Тем не менее, следует помнить, что &kmymoney; поддерживает сохранение финансовых данных в нескольких форматах.

В этой главе приводится описание форматов, в которых &kmymoney; сохраняет данные в постоянном виде на запоминающем устройстве пользователя. Обычно &kmymoney; сохраняет данные в формате документа &XML;. В зависимости от актуального формата, этот документ &XML; будет записан:

- как обычный текстовый файл в кодировке UTF-8,

- как файл, сжатый с помощью GZIP,

- как файл, зашифрованный с помощью шифрования GPG

- как анонимный простой текстовый файл в кодировке UTF-8, в котором зашифрованы все персональные данные пользователя.

## Простой текстовый файл

Для сохранения в этом формате требуется наибольшее количество пространства, так как не выполняется сжатие. Этот формат не предназначен для использования по умолчанию, он предоставляется для целей отладки и позволяет изменить файл вручную. Если завершить имя файла текстом `.xml`, файл будет сохранён в этом формате.

Обычным пользователям не рекомендуется вручную изменять этот файл (в случае ошибки возможно повреждение данных). Это следует делать только тем, кто полностью разбирается в механизме работы приложения &kmymoney; или получил подробные инструкции от разработчиков.

## Файл, сжатый с помощью GZIP

Этот формат используется &kmymoney; по умолчанию, когда выполняется сохранение файла с расширением `.kmy`.

Если выбрано шифрование, файл будет сохранён в зашифрованном виде.

Если требуется просмотреть содержимое файла, сжатого с помощью GZIP, измените его расширение на `.gz` (например, переименуйте `myfinances.kmy` в `myfinances.kmy.gz`), затем используйте `gunzip` для распаковки файла и его просмотра. Для последующей загрузки в &kmymoney; этот файл не потребуется сжимать повторно, так как &kmymoney; поддерживает чтение также и несжатых данных. Но если файл будет затем сохранён в приложении, он снова будет сжат. Используйте расширение `.xml`, чтобы записать его в несжатом формате.

## Файл, зашифрованный с помощью GPG

Сохранение личных финансовых данных их в формате файла, зашифрованного с помощью GPG, обеспечивает высокий уровень безопасности. Если в параметрах программы &kmymoney; указано сохранение данных в зашифрованном виде, перед фактическим сохранением данных на запоминающем устройстве будет выполнено их шифрование с помощью GPG и ключа, предоставленного пользователем. При открытии зашифрованного файла будет предложено ввести парольную фразу, которая необходима для доступа к набору ключей. Сам зашифрованный файл сохраняется в защищённом формате &ASCII; GPG.

При использовании шифрования с помощью GPG также выполняется сжатие файла, поэтому дополнительное сжатие не требуется.

### GPG-ключи

Чтобы воспользоваться предоставляемой &kmymoney; функцией шифрования с помощью GPG, потребуется создать пару ключей (если только это уже не было сделано для шифрования электронной почты). Кроме того, в системе должно быть установлено приложение GPG.

Сведения о том, как создать пару ключей и работать с ней, выходят за рамки настоящего руководства. Краткие справочные сведения доступны здесь: https://www.gnupg.org/documentation/howtos.en.html.

### Настройка ключей в &kmymoney;

На странице шифрования диалога настройки доступен раскрывающийся список, позволяющий выбрать ключ, который следует использовать для шифрования и расшифровки. Также доступно поле, в котором возможно указать идентификатор ключа, который отсутствует в списке. Значением этого поля может быть идентификатор ключа, связанный с этим ключом адрес электронной почты или же любой другой корректный идентификатор GPG-ключа. При вводе идентификатора ключа &kmymoney; выполнит проверку его корректности и отобразит значок зелёного светодиода, если ключ найден.

Убедитесь, что для указанного идентификатора имеются как открытый, так и закрытый ключи. Если соответствующий закрытый ключ отсутствует, повторно открыть файл будет невозможно.

### Ключ восстановления &kmymoney;

На этой странице диалога настройки также возможно выбрать опцию дополнительного шифрования с помощью ключа восстановления &kmymoney;. Эта опция доступна, если этот ключ хранится в наборе ключей GPG. Она позволяет восстановить данные даже в случае утраты закрытого ключа. Это возможно благодаря тому, что данные шифруются не только ключом пользователя, но и ключом восстановления &kmymoney;. Этот ключ доступен только некоторым разработчикам &kmymoney; (на момент написания настоящего руководства — только автору). Для &kmymoney; версии 4.7 ключ восстановления действителен до 3 января 2015 года.

Если с ключами всё в порядке, открытие, сохранение и закрытие файла выполняется как обычно. Если же ключ был утерян, возможно связаться с одним из разработчиков, обладающих доступом к ключу восстановления &kmymoney;, и попросить его помощи в восстановлении данных. Чтобы обратиться к разработчикам &kmymoney;, отправьте письмо в список рассылки по адресу &devlist;.

## Анонимный файл

Этот формат не предназначен для обычного хранения данных. Он предоставляется с той целью, чтобы пользователь в случае возникновения проблем мог предоставить команде разработчиков &kmymoney; свой файл, не разглашая какие-либо конфиденциальные детали финансовых данных. Например, строки с наименованием учреждений, счётов, контрагентов и статей будут переименованы в нечто наподобие «I000001» и «A000001». Аналогичные изменения вносятся и в номера счетов. Также случайным образом изменяются суммы операций.

Если от разработчиков получено соответствующее указание, воспользуйтесь пунктом меню Сохранить как... для сохранения данных в формате анонимного файла: выберите в фильтре вариант `Анонимные файлы`. При этом расширение файла изменится на `.anon.xml`.

Чтобы проверить, что сохранённый анонимный файл всё ещё отражает проблему, перезагрузите этот файл и попытайтесь воспроизвести ошибку. Если она снова имеет место, отправьте этот файл в список рассылки разработчиков по адресу &devlist;.