[C#] cryptare e decryptare un file

mercoledì 09 luglio 2008 - 18.19

danielmaz Profilo | Newbie

Ragazzi ho la necessità di cryptare e decryptare dei file di testo in base a una password che scelgo io, come posso fare?
ho cercato in giro ma trovo poco e niente

aiedail92 Profilo | Expert

Ciao

Puoi servirti delle classi nel namespace System.Security.Cryptography. Ad esempio potresti fare così:

//Questa funzione genera un array di byte che possono essere //usati come password e IV per l'algoritmo di criptazione\decriptazione public byte[] GeneratePassword(string password) { MD5 md5 = new MD5CryptoServiceProvider(); byte[] input = Encoding.UTF8.GetBytes(password); return md5.ComputeHash(input, 0, input.Length); } //Crittografa un file con la password e l'IV specificati public void Encrypt(string filePath, string password, string IV) { RijndaelManaged rijndael = new RijndaelManaged(); rijndael.IV = GeneratePassword(IV); rijndael.Key = GeneratePassword(password); byte[] inputBytes = File.ReadAllBytes(filePath); byte[] outputBytes = rijndael.CreateEncryptor() .TransformFinalBlock(inputBytes, 0, inputBytes.Length); File.WriteAllBytes(filePath, outputBytes); } //Decrittografa un file con la password e l'IV specificati public void Decrypt(string filePath, string password, string IV) { RijndaelManaged rijndael = new RijndaelManaged(); rijndael.IV = GeneratePassword(IV); rijndael.Key = GeneratePassword(password); byte[] inputBytes = File.ReadAllBytes(filePath); byte[] outputBytes = rijndael.CreateDecryptor() .TransformFinalBlock(inputBytes, 0, inputBytes.Length); File.WriteAllBytes(filePath, outputBytes); }

Luca

Enne Profilo | Junior Member

Questo invece è tramite il componente CryptoStream. Cripta e decripta utilizzando l'algoritmo DES.

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Rocco Verrastro
.NET Programmer - Web Developer

danielmaz Profilo | Newbie

aiedail il codice tuo non sono riuscito a farlo funzionare mi dava degli errori non ricordo dove. L'altro sono riuscito a farlo funzionare più facilmente
grazie comunque a tutti e due mi sono levato di mezzo un grande problema

Enne Profilo | Junior Member

No daniel, il codice di aiedail funziona anche se io al Rijndael preferisco DES o 3DES.
L'importante è che hai risolto, buona continuazione di lavoro.

Rocco Verrastro
.NET Programmer - Web Developer
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5