3

一部のファイルを( ZIP形式に)圧縮し、可能であればC#を使用して暗号化したい。これを行う方法はありますか?

圧縮自体の一部として暗号化を行うことはできますか?

4

9 に答える 9

12

圧縮についてはSystem.IO.Compression名前空間を、暗号化についてはを見てくださいSystem.Security.Cryptography

于 2008-09-16T10:40:07.703 に答える
7

Zip圧縮については、http://www.icsharpcode.net/OpenSource/SharpZipLib/を見たことがありますか。

于 2008-09-16T10:50:12.407 に答える
6

質問がすでに古いことはわかっていますが、2 セント追加する必要があります。

まず、いくつかの定義:

  • Zip : ファイルとフォルダーを 1 つのファイルに再グループ化し、オプションでデータを暗号化するためのアーカイブ形式。
  • Deflate : データを圧縮するために Zip ファイル内で使用される圧縮アルゴリズムの 1 つ。最も人気のあるもの。
  • GZip : deflate で圧縮され、ヘッダーとフッターが小さい単一のファイル。

現在、System.IO.Compression はZip アーカイブを行いません。deflategzip圧縮を行うため、単一のデータの塊を別の単一のデータの塊に圧縮します。

したがって、多くのファイルとフォルダーをグループ化できるアーカイブ形式を探している場合は、次のような Zip ライブラリが必要です。

データの 1 つの BLOB のみを圧縮して暗号化する必要がある場合は、System.IO.CompressionおよびSystem.Security.Cryptographyを調べます。

于 2008-09-23T19:53:15.950 に答える
1

GZipStreamクラスは、圧縮を処理するためのネイティブな方法です。

暗号化に関しては、それを行う方法はたくさん ありますが、そのほとんどはSystem.Security名前空間にあります。それらは連鎖的に行うことができます(圧縮されたストリームを暗号化するか、暗号化されたストリームを圧縮します)。

于 2008-09-16T10:40:38.437 に答える
1

Chilkatは、圧縮と暗号化のための .NET ライブラリを提供します。

于 2008-09-16T12:47:52.267 に答える
0

それらを組み合わせることができない場合は、最初に圧縮を実行してから暗号化を実行します。すでに暗号化されているファイルを圧縮すると、多くの冗長性が失われるため、圧縮率が低下します。

于 2008-09-16T11:13:38.997 に答える
0

手順を組み合わせることができるかどうかはわかりませんが、.NETは基本的な暗号化を適切にサポートしています。これに関する記事があります。

于 2008-09-16T10:41:37.140 に答える
-1

ここに役立つトピックがあります:

.NetからZipファイルを作成し、Javaから読み取るのに役立ちます

System.IO.Packaging名前空間は、データをzip形式で圧縮し、権限管理をサポートするための便利なクラスを提供します。

于 2008-09-16T10:40:31.590 に答える
-1

C#で直接使用できるものはありませんが、J#のいくつかのライブラリを使用してそれを行うことができます。

http://msdn.microsoft.com/en-us/magazine/cc164129.aspx

あなたがやりたいことだけをすべきですか?

暗号化に関しては、次のリンクをご覧ください。

http://www.codeproject.com/KB/security/fileencryptdecrypt.aspx

http://www.obviex.com/samples/EncryptionWithSalt.aspx

于 2008-09-16T10:40:50.323 に答える