Существуют ли библиотеки сжатия и шифрования в C#?
-
09-06-2019 - |
Вопрос
Я хочу сжать некоторые файлы (в Почтовый индекс формате) и зашифруйте их, если возможно, с помощью C#.Есть ли способ сделать это?
Можно ли выполнить шифрование как часть самого сжатия?
Решение
Информацию о сжатии см. System.IO.Compression
пространство имен и для шифрования посмотрите System.Security.Cryptography
.
Другие советы
Вы видели сжатие ZIP? http://www.icsharpcode.net/OpenSource/SharpZipLib/
Я знаю, что вопрос уже старый, но я должен добавить свои два цента.
Сначала несколько определений:
- Почтовый индекс:Формат архива для перегруппировки файлов и папок в один файл и опционального шифрования данных.
- Сдуть:Один из алгоритмов сжатия, используемый в Zip-файле для сжатия данных.Самый популярный.
- GZip:Один файл, сжатый с помощью Deflate, с небольшим верхним и нижним колонтитулом.
Теперь System.IO.Compression делает нет сделать Zip-архивацию.Оно делает сдувать и gzip сжатие, таким образом сжимает один блок данных в другой один блок данных.
Итак, если вы ищете формат архива, который может группировать множество файлов и папок, вам нужны библиотеки Zip, такие как:
- Xceed Zip (он поддерживает стойкое шифрование)
- SharpZipLib
Если вам нужно сжать и зашифровать только один блок данных, посмотрите раздел System.IO.Compression и Система.Безопасность.Криптография.
А GZipStream class — это собственный способ обработки сжатия.
Что касается шифрования, то есть много способы для этого большинство из них находятся в пространстве имен System.Security.Их можно сделать цепочками (зашифровать сжатый поток или сжать зашифрованный поток).
Чилкат предоставляет библиотеки .NET для сжатия и шифрования.
Я не уверен, можно ли объединить эти шаги, но .NET имеет хорошую поддержку базового шифрования.Вот статья об этом.
Если их невозможно объединить, сначала выполните сжатие, а затем шифрование.Сжатие уже зашифрованного файла приведет к плохой степени сжатия, поскольку будет удалена большая часть избыточности.
Вот полезная тема:
Помощь в создании Zip-файлов из .Net и их чтении из Java.
Пространство имен System.IO.Packaging предоставляет полезные классы для сжатия данных в формате zip и поддерживать управление правами.
Непосредственно в C# нет ничего, что можно было бы использовать, однако вы можете использовать некоторые библиотеки из J#, чтобы сделать это за вас:
http://msdn.microsoft.com/en-us/magazine/cc164129.aspx
Должен делать только то, что хочешь?
Что касается шифрования, взгляните на эти ссылки:
http://www.codeproject.com/KB/security/fileencryptdecrypt.aspx