Sobes.tech
Junior — Middle

Hogyan történik az adatok felülírása C# nyelven?

sobes.tech MI

Válasz az MI-től

A C#-ban az adatok törlése (data wiping) általában úgy valósul meg, hogy a változó memóriáját többször véletlenszerű vagy fix értékekkel töltjük ki, hogy megakadályozzuk érzékeny információk visszanyerését.

A stringek esetében ez nehéz, mivel a C#-ban a stringek immutable-ek, de byte vagy char tömbök esetében használható az Array.Clear metódus vagy ciklussal való kitöltés.

Példa egy byte tömb felülírására:

void WipeData(byte[] data)
{
    if (data == null) return;
    for (int i = 0; i < data.Length; i++)
    {
        data[i] = 0;
    }
}

Biztonságosabb felülíráshoz használhatjuk a System.Security.Cryptography.RandomNumberGenerator osztályt, amellyel véletlenszerű adatokkal tölthetjük fel a tömböt a törlés előtt.

Fontos megjegyezni, hogy a szemétgyűjtő és a fordító optimalizációi miatt a memória teljes és garantált törlése egy kezelt környezetben nehéz feladat.