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
Personalizzare i parametri del CSS Scroll Snap
Effettuare la ricerca di testo nascosto in una pagina web con Javascript
Usare i generics di C# con la clausola nameof in modo semplificato
Ricerca delle GitHub issue tramite operatori logici
Blazor e Static Web Assets in .NET 10
Gestione delle scrollbar dinamiche in HTML e CSS
Agentic Workflows in GitHub
Breaking the Legacy Barrier: how to Use AI to Modernize Applications
Eseguire i pre-commit hook di git con dependabot
Centralizzare e governare MCP server e Skill con Azure API Center
DevSecOps per .NET: dalla teoria alla pratica
From Data to Insight: Exploratory Data Analysis with Python, VS Code and SQL MCP Server


