В моем бизнес-сценарии (в основном облачное приложение для обмена файлами) у меня есть следующий случай:
пользователь загружает файл (ы) в папку
проверяется, защищена ли папка PIN-кодом
1) Если он не защищен PIN-кодом, зашифруйте файл, используя предварительно определенный ключ доступа, хранящийся в приложении, + ключ IV, хранящийся в базе данных.
2) Если он защищен PIN-кодом, зашифруйте файл, используя предварительно определенный ключ доступа + значение PIN + ключ IV, хранящийся в базе данных.
Проблема в том, что AES с ограниченной длиной ключа доступа получает недопустимую длину ключа при превышении максимального размера ключа (16, 24, 32 байта). Мой главный вопрос - как добиться этого при сохранении безопасности.
На данный момент длина PIN-кода папки не ограничена, но кажется, что я должен ограничить ее как минимум максимальной длиной прохода ключа AES. Небольшое улучшение может быть связано с использованием RijndaelManaged, где у меня немного больше гибкости в отношении длины ключа доступа.
Любое предложение будет оценено.
Примечание. Я не думаю, что код добавит никакого значения этому вопросу, но если кто-то не согласен, дайте мне знать, и я добавлю его.