Nello script #510 abbiamo visto come creare un metodo che prende una stringa e una chiave e cripta la stringa con la chiave restituendo a sua volta una stringa criptata ed encodata in Base64. In questo script ci occupiamo del processo inverso ovvero di recuperare la stringa criptata e trasformarla nell astringa originale.
public static string DecryptString(string cipherText, string keyValue) { var key = Encoding.UTF8.GetBytes(keyValue); using (var aesAlg = Aes.Create()) { using (var decryptor = aesAlg.CreateDecryptor(key, aesAlg.IV)) { using (MemoryStream msDecrypt = new MemoryStream(Convert.FromBase64String(cipherText))) { using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)) { using (StreamReader srDecrypt = new StreamReader(csDecrypt)) { return srDecrypt.ReadToEnd(); } } } } } }
Questo metodo è molto simile a quello visto nello script #510 in quanto istanza la classe che rappresenta l'algoritmo AES e successivamante crea un'istanza dell'oggetto che decripta la stringa. Dopo questo vengono creati gli stream di lettura (passando il byte array della stringa criptata nel costruttore), di criptaggio e di deposito della stringa decriptata. Una volta creati questi stream, il metodo ReadToEnd dello stream di deposito torna la stringa decriptata.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- C# 4
- Spaziatura tra i caratteri in Silverlight 5
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Segui in tempo reale il TechEd 2004
- da oggi è possibile fare login velocemente con LinkedIn e Google. a questi si aggiunge il supporto già attivo per Facebook, Twitter, Microsoft Account, Windows Hello e OpenID, per darvi sempre più possibilità di accedere semplicemente alla nostra community! #aspitalia
- Migrare una service connection a workload identity federation in Azure DevOps
- Evitare postback multipli in un UpdatePanel