Ich schreibe ein Java-Programm zum Spaß, die vertrauliche Informationen von Benutzern speichert.ByteBuffer allocate direct Beispiel
Aus diesem Grund möchte ich sicherstellen, dass die Müllsammlung es nicht berührt, so dass ich in der Zukunft, wenn ich fertig bin, kann ich es aus dem Speicher löschen.
Bisher habe ich diese Codezeile 2048 Bytes erstellen, die mehr als genug ist, um die Passwörter eines Benutzers zu speichern.
Meine Frage ist, wie ich eine Zeichenfolge wie "Secret123" speichern, und nach dem Löschen? Dies ist eine sehr grundlegende Frage, die ich kenne, aber ich konnte sie in der Dokumentation nicht sehen. Ich mache es wahrscheinlich schwieriger als in meinem Kopf, aber Vorsicht ist besser als Nachsicht.
ByteBuffer pass = ByteBuffer.allocateDirect(2048);
ich von anderen Risiken bewusst bin, wie Swap-Seite Dateien, griff der Computer seines Kaltstart etc ...
Dank!
EDIT: Als Antwort auf die erste Antwort - ich meine, um Speicher mit '0' Zeichen danach zu füllen, nicht um es zu befreien.
Sie sind Bytes, keine Zeichen. Aber habe ich deine Frage nicht beantwortet? – erickson
@erickson pass.put ((Byte) 0); gibt mir eine Fehlermeldung, dass der Bezeichner erwartet wird. – user5623335
@erickson Wenn ich "pass" eintippe. Ich bekomme keine Liste von Dingen, zum Beispiel normalerweise hätte ich .toString() usw. ... aber ich sehe nichts davon. Identifier erwartet, illegaler Start des Typs, dann wird der Identifier erneut erwartet. – user5623335