Рейтинг:0

Срок действия моего ключа Fernet истек, что теперь?

флаг us

6 месяцев назад я создал бота, который в основном хранил данные всех пользователей в формате json в разных текстовых файлах, и у меня был ключ fernet. Я практически не трогал его уже месяца 2, потому что это бот для студентов. Итак, вот в чем дело, школа начинается через 15 дней, у меня есть 106 учетных записей, которые зашифрованы с помощью одного ключа fernet, и я не могу расшифровать файлы, потому что они говорят, что они повреждены. Что мне делать?

Eric D avatar
флаг uz
Я не особенно знаком с fernet, но было бы странно, если бы он позволил истечь сроку действия ключа дешифрования. Возможно, данные действительно были повреждены или в коде может быть ошибка. (ПРИМЕЧАНИЕ: прежде чем что-либо делать, сделайте резервную копию данных, чтобы не усугубить ситуацию во время устранения неполадок.) Работала ли расшифровка раньше или вы впервые расшифровываете эти данные? Если вы сейчас создадите новые зашифрованные данные, правильно ли они расшифруются? Не могли бы вы поделиться исходным кодом вашего бота (за исключением секретов, которые он может содержать)?
Рейтинг:0
флаг uz

Немного покопавшись в исходном коде fernet, похоже, что одна из возможностей заключается в том, что у вас установлен TTL для зашифрованных данных.

Если вы используете Ruby, вы можете отключить проверку TTL с помощью параметра конфигурации config.enforce_ttl:

Если вы используете Go, похоже, вы можете передать ттл из 0 в VerifyAndDecrypt:

Возможно, вы сможете проверить эту теорию с помощью интерфейса командной строки fernet, поскольку он по умолчанию отключает проверку TTL (если я правильно интерпретирую код Ruby).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.