Un'operazione molto comune in un'applicazione .NET è quella di criptare una stringa per poi essere in grado di decriptarla successivamente. Per eseguire questa operazione possiamo utilizzare provider di crittografia simmetrici come quello che utilizza l'algoritmo AES. Questi provider utilizzano una chiave per criptare una sringa e utilizzano la stessa chiave per decriptarla. Questa chiave è molto importante quindi va tenuta in un posto sicuro e non in un file di configurazione in chiaro o all'interno del codice che potrebbe essere decompilato o, peggio, essere su server accessibili pubblicamente.
public static string EncryptString(string text, string keyValue)
{
var key = Encoding.UTF8.GetBytes(keyValue);
using (var aesAlg = Aes.Create())
{
using (var encryptor = aesAlg.CreateEncryptor(key, aesAlg.IV))
{
using (var msEncrypt = new MemoryStream())
{
using (var csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
{
using (var swEncrypt = new StreamWriter(csEncrypt))
{
swEncrypt.Write(text);
}
}
var result = msEncrypt.ToArray();
return Convert.ToBase64String(result);
}
}
}
}Il metodo accetta in input la stringa da criptare e la chiave da usare. Per prima cosa questa chiave viene trasformata in un array di byte. Successivamente vengono creati tutti gli oggetti che entrano nel processo di crittografia cioè quello che rappresenta l'algoritmo, quello responsabile della crittografia per l'algoritmo, lo stream che conterrà i dati criptati, l'oggetto che fisicamente genera i dati da inviare allo stream e infine writer che scrive i dati criptati nello stream. Una volta creati tutti questi oggetti, interconnessi tra loro, con il metodo Write del writer scriviamo i dati criptati nello stream e successivamente li leggiamo come array di byte con il metodo ToArray. Per finire, convertiamo l'array di byte in una stringa encodada in base64 tramite Convert.ToBase64String
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Blazor e InputHidden in .NET 10
Semplificare la gestione dei modelli con Azure AI Foundry Model Router
Stop alle password con Azure Managed Identity
Agentic Workflows in GitHub
Effettuare la ricerca di testo nascosto in una pagina web con Javascript
Gestire gli errori nelle Promise JavaScript con try()
Testare le API di Azure Resource Manager con API Playground
Personalizzare le pagine di errore su Azure App Service
Gestione delle issue type con GitHub
Impostare il tipo di supporto dei campi Json in Entity Framework con Sql Server
Abilitare .NET 10 su Azure App Service e Azure Functions
Impostare la content-visibility in CSS per ottimizare il rendering iniziale di una pagina


