Domanda

Voglio comprimere alcuni file (nel file cerniera lampo format) e crittografarli, se possibile, utilizzando C#.C'è un modo per farlo?

È possibile eseguire la crittografia come parte della compressione stessa?

È stato utile?

Soluzione

Per la compressione, guarda il System.IO.Compression namespace e per la crittografia guarda System.Security.Cryptography.

Altri suggerimenti

Per la compressione Zip, hai visto http://www.icsharpcode.net/OpenSource/SharpZipLib/

So che la domanda è già vecchia, ma devo aggiungere i miei due centesimi.

Innanzitutto alcune definizioni:

  • Cerniera lampo:Formato di archivio per raggruppare file e cartelle in un unico file e, facoltativamente, crittografare i dati.
  • Sgonfiare:Uno degli algoritmi di compressione utilizzati all'interno di un file Zip per comprimere i dati.Il più popolare.
  • GZip:Un singolo file compresso con deflate, con una piccola intestazione e piè di pagina.

Ora, System.IO.Compression lo fa non eseguire l'archiviazione Zip.Lo fa sgonfiare E gzip compressione, quindi comprimerà un singolo blob di dati in un altro singolo blob di dati.

Quindi, se stai cercando un formato di archivio in grado di raggruppare molti file e cartelle, hai bisogno di librerie Zip come:

Se hai solo bisogno di comprimere e crittografare un singolo blob di dati, guarda sotto System.IO.Compression E System.Security.Crittografia.

IL GZipStream class è un modo nativo per gestire la compressione.

Per quanto riguarda la crittografia, ci sono molti modi per farlo, la maggior parte di essi nello spazio dei nomi System.Security.Possono essere eseguiti concatenati (crittografare un flusso compresso o comprimere un flusso crittografato).

Chilkat fornisce librerie .NET per la compressione e la crittografia.

Non sono sicuro che i passaggi possano essere combinati, ma .NET ha un buon supporto per la crittografia di base.Ecco un articolo su di esso.

Se non possono essere combinati, esegui prima la compressione e poi la crittografia.La compressione di un file già crittografato porterà a rapporti di compressione scadenti, poiché viene rimossa gran parte della ridondanza.

Ecco un argomento utile:

Aiuto nella creazione di file Zip da .Net e nella loro lettura da Java

Lo spazio dei nomi System.IO.Packaging offre classi utili per comprimere i dati in formato zip e supporto gestione dei diritti.

Non c'è niente che puoi usare direttamente in C#, tuttavia puoi usare alcune librerie di J# per farlo per te:

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

Dovresti fare proprio quello che vuoi?

Per quanto riguarda la crittografia, dai un'occhiata a questi link:

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

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top