Эти вопросы и ответы how-do-decryption- алгоритмы определения-правильности-вашей-попытки-парольной фразы предполагают, что алгоритмы дешифрования, которым необходимо знать правильность парольной фразы, используют HMAC для проверки правильности парольной фразы.
Поэтому, когда важно иметь возможность информировать пользователя о том, преуспела ли операция дешифрования в получении ожидаемых данных, инженеры по криптографии используют коды аутентификации сообщений . MAC-адреса на основе хэша позволяют сравнивать открытый текст кандидата с аутентифицированным хеш-значением. Если проверка прошла успешно, мы знаем, что это правильный открытый текст, и можем уведомить пользователя о том, что функция дешифрования была успешной, как и предполагалось.
Некоторая информация о дизайне encfs :
Предоставленный вами пароль используется для расшифровки ключа громкости.
Технология
Encfs использует алгоритмы из сторонних библиотек (OpenSSL по умолчанию) для шифрования данных и имен файлов.
Пароль, вводимый пользователем, используется для расшифровки ключа тома, а ключ тома используется для шифрования всех имен файлов и содержимого. Это позволяет изменять пароль без необходимости повторного шифрования всех файлов.
Согласно этому аудиту безопасности
Ответьте на вопрос в комментарии, MAC сохраняется как часть каждого зашифрованного файла.
Из https://stackoverflow.com/a/3167526/7192818
Я не знаю, применимо ли это и к python, но я думаю, что это зависит от операционной системы что вы бежите.
В Linux, например, вывод на терминал сбрасывает буфер на новой строке , тогда как для вывода в файлы он сбрасывается только тогда, когда буфер заполнен (по умолчанию). Это связано с тем, что более эффективно очищать буфер меньшее количество раз, и пользователь с меньшей вероятностью заметит, если вывод не сбрасывается на новую строку в файле.
Вы могли бы автоматически очистить вывод, если это то, что вам нужно.
Таким образом, в скрипте python добавление sys.stdout.flush ()
после записи заставляет его вести себя так, как ожидалось.
Мех.