Я пишу реализацию алгоритма шифрования XXTEA, который работает на «потоках», т. Е. Может использоваться как: crypt mykey output.
Одним из необходимых условий является то, что он вообще не имеет доступа к файлу (он читает только блок фиксированного размера, пока не найдет EOF). Алгоритм требует, чтобы байты данных были кратны 4, поэтому необходимо добавить заполнение.
Для простого текста хорошим решением является заполнение значениями NULL, а при расшифровке просто игнорируйте NULL, но эту же стратегию нельзя использовать для двоичных потоков (которые могут содержать встроенные значения NULL).
Я читал общие решения, такие как заполнение количеством пропущенных символов (если пропущено 3 символа, затем добавьте 3, 3, 3 в конце) и т. Д., Но мне интересно: есть более элегантное решение