Frage

Wie lösche ich Dateien sicher in Java? Ich habe versucht, den Code unter javafaq.nu , aber das Problem ist, dass Sie kann nicht wirklich die Datei auf Fenster löschen, sobald es noreferrer"> diesen Fehler aufgrund sysinternals sdelete auf Fenster, aber Sie haben einen Nutzungsvertrag das erste Mal, wenn Sie darauf klicken zu benutzen, die ich vermeiden will.

War es hilfreich?

Lösung

Auf einem Journaling-Dateisystem wie NTFS gibt es eigentlich keine Möglichkeit, sicher eine einzelne Datei zu löschen, ohne auf dem Laufwerk der gesamte freie Speicherplatz abwischen. Das Problem ist, dass die neuen Blöcke (die Sie vermutlich mit Zufallsdaten überschrieben haben) werden nicht wie die alten an der gleichen Stelle auf der Festplatte sein garantiert.

Dienstprogramme wie sdelete könnte für Sie arbeiten, aber man konnte einfach diese ausführbare Datei mit einem ersetzen, der nichts tut, um diese Methode der Verteidigung zu vereiteln.

Um Ihre Daten sicher zu halten, ist die einzige wirkliche Lösung, die Sie haben, ist vollständig das Laufwerk verschlüsseln.

Andere Tipps

I codiert und versucht, diese Funktion, und es schien zu funktionieren:

public static void secureDelete(File file) throws IOException {
    if (file.exists()) {
        long length = file.length();
        SecureRandom random = new SecureRandom();
        RandomAccessFile raf = new RandomAccessFile(file, "rws");
        raf.seek(0);
        raf.getFilePointer();
        byte[] data = new byte[64];
        int pos = 0;
        while (pos < length) {
            random.nextBytes(data);
            raf.write(data);
            pos += data.length;
        }
        raf.close();
        file.delete();
    }
}

Vielleicht tun deleteOnExit () in der Datei?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top