C # Variable sicher aus dem Speicher löschen

Ich mache ein sicherheitsbezogenes Programm und möchte sichergehen, dass ich das richtig mache. Wenn sich jemand mit einem Passwort anmeldet, wird ein geheimer Schlüssel entschlüsselt und in einer Variablen gespeichert. Wenn sie sich abmelden, sollen die Daten im Speicher für diesen geheimen Schlüssel vollständig gelöscht und nicht nur als gelöscht markiert werden. Ich mache gerade folgendes:

public void Logout()
{
    RNGCryptoServiceProvider rngCsp = new RNGCryptoServiceProvider();
    for (var i = 0; i < 3; i++)
    {
        byte[] data = new byte[(int) Math.Round((double) (_phraseHash.Count()))];
        rngCsp.GetBytes(data);
        int randomNum = BitConverter.ToInt32(data, 0);
        _phraseHash = randomNum.ToString();
    }
    LoggedIn = false;
    _phraseHash = null;
}

Ich möchte wissen, ob dies ausreicht, um den geheimen Schlüssel (_phraseHash) vollständig aus dem System zu löschen.

Auch ist das überhaupt nötig? Ich weiß eigentlich nicht viel darüber, wie Daten im Speicher gelöscht werden. Ich bin lediglich davon ausgegangen, dass dies in etwa der Funktionsweise von Festplatten entspricht, bei denen Bytes nur als gelöscht markiert und neu geschrieben werden, wenn etwas anderes den Speicherplatz benötigt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage