Question

Comment puis-je supprimer en toute sécurité les fichiers en Java? J'ai essayé le code javafaq.nu , mais le problème est que vous ne peuvent pas réellement supprimer le fichier sur windows une fois qu'il a été cartographié en raison de ce bug .

Alors j'ai essayé juste en utilisant Sysinternals sdelete sur les fenêtres, mais vous devez cliquer sur un accord d'utilisation de la première fois que vous utilisez ce que je veux éviter.

Était-ce utile?

La solution

Sur un système de fichiers journalisé comme NTFS, il est en fait aucun moyen d'effacer en toute sécurité un seul fichier sans effacer tout l'espace libre sur le disque. Le problème est que les nouveaux blocs (que vous avez probablement écrasé avec des données aléatoires) ne sont pas garantis au même endroit sur le disque que les anciens.

Utilitaires comme sdelete pourraient travailler pour vous, mais on pourrait tout simplement remplacer l'exécutable avec celui qui ne fait rien pour contrecarrer cette méthode de défense.

Afin de préserver la sécurité de vos données, la seule solution que vous avez est de chiffrer complètement le lecteur.

Autres conseils

Je codifiées et essayé cette fonction, et il semblait fonctionner:

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();
    }
}

Peut-être faire deleteOnExit () sur le fichier?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top