Junior — Middle
Kako se vrši prepisivanje podataka u jeziku C#?
sobes.tech АИ
Одговор од АИ
U C#-u, brisanje podataka (data wiping) obično se vrši višestrukim popunjavanjem memorije promenljive nasumičnim ili fiksnim vrednostima kako bi se sprečilo vraćanje osetljivih informacija.
Za stringove je to teško, jer su stringovi u C# nepromenljivi, ali za nizove bajtova ili karaktera može se koristiti metoda Array.Clear ili popunjavanje petljom.
Primer prepisivanja niza bajtova:
void WipeData(byte[] data)
{
if (data == null) return;
for (int i = 0; i < data.Length; i++)
{
data[i] = 0;
}
}
Za pouzdanije prepisivanje, može se koristiti klasa System.Security.Cryptography.RandomNumberGenerator za popunjavanje nasumičnim podacima pre čišćenja.
Važno je zapamtiti da je zbog karakteristika sakupljača smeća i optimizacija kompajlera, potpuno garantovano uklanjanje podataka iz memorije u upravljanom okruženju teško.