Мне нужно продублировать различные типы файлов, немного их изменить, чтобы хэш оригинала md5 не совпадал с модифицированным, но оставлял их читаемыми и не поврежденными.
TXT-файлы - это очевидно,Я просто добавляю случайную строку в конец файла.
PDF-файл - ну, я начал искать библиотеку Java для редактирования PDF-файлов, но затем я случайно попытался открыть PDF-файл в Notepad ++ и подумал- почему бы мне не попытаться добавить случайную строку в конец нечитаемого контента, который я там вижу.Ну, к моему удивлению, это сработало, и файл не был поврежден.
ZIP-файл - я пробовал то же самое, что и с pdf, и он тоже работал.
DOCX-тот же метод перестал работать здесь.Добавление только пробела ("") в конце двоичного содержимого файла docx, который я открываю в текстовом редакторе, повреждает файл.
Итак, мне нужно:
java-библиотеки для изменения офисных документов: doc, docx, xls, xlsx, ppt, pptx.
Есть еще типы файлов, которые мне нужно изменить, там вывод хеша md5, но я не думаю, что они могут быть изменены в java-медиа-файлах, например, исполняемых файлах и т. д. Итак, тем не менее, как я могу выполнить то, что я хочу над этими файлами?Есть ли способ просто «прикоснуться» к файлу, изменить заголовок или что-то и сделать его неидентичным нетронутому?
edit: Хорошо, вот мотивация - я хочу создатьОгромное количество данных, как я здесь спросил: Как получить огромное количество данных?
На момент ответа на этот вопрос я получил достаточно, но их нет.
Мне нужны данные, чтобы они не были идентичными.Пары файлов должны пройти хэш-тест md5.
Я не могу просто генерировать случайные строки, потому что мне нужно моделировать реальные файлы и документы.
Я не могу использовать существующие дампы данных, потому что мне нужны разные размеры этих наборов данных, которые включают файлы различных типовМне нужно что-то, что я дам в качестве входных данных размера, и это будет генерировать данные для меня.
Поэтому я решил, что мне следует использовать начальный набор данных всех типов файлов, которые мне в конечном итоге понадобятся, и просто продублировать этот набор данных.