Sobes.tech
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.