Für den Test von Kryptographie-Beispielen ist es zuweilen sehr gut, wenn Ihr Dateien mit einer definierten Länge schnell und einfach erstellen könnt. Ich zeige Euch mit diesem einfach aussehenden Programm, wie Ihr sehr schnell nahezu beliebig große Dateien erzeugen könnt.
Die Dateien werden komplett mit Null-Bytes („x00“) gefüllt sein, was bei der späteren Entschlüsselung wieder sehr hilfreich ist, da Ihr auf einen Blick sehen könnt, dass die Entschlüsselung erfolgreich war. Übergebt der Methode lediglich den Dateinamen (inklusive Pfad) und die gewünschte Größe in Bytes (1.024 * 1.024 = 1 Megabyte, 1.024 * 1.024 * 1.024 = 1 Gigabyte).
Eine kleine Warnung vorne weg: das Programm erzeugt ohne Sicherheitsabfrage eine Datei in der gewünschten Größe – wenn Ihr Euch damit Euer Windows-Systemlaufwerk bis aufs letzte Byte füllt wird Windows unbenutzbar…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
package net.bplaced.javacrypto.general; /* * Herkunft/Origin: http://javacrypto.bplaced.net/ * Programmierer/Programmer: Michael Fehr * Copyright/Copyright: frei verwendbares Programm (Public Domain) * Copyright: This is free and unencumbered software released into the public domain. * Lizenttext/Licence: <http://unlicense.org> * getestet mit/tested with: Java Runtime Environment 8 Update 191 x64 * getestet mit/tested with: Java Runtime Environment 11.0.1 x64 * Datum/Date (dd.mm.jjjj): 18.01.2019 * Funktion: erzeugt eine Datei mit definierter Größe * Function: creates a file of defined size * * Sicherheitshinweis/Security notice * Die Programmroutinen dienen nur der Darstellung und haben keinen Anspruch auf eine * korrekte Funktion, insbesondere mit Blick auf die Sicherheit ! * Prüfen Sie die Sicherheit bevor das Programm in der echten Welt eingesetzt wird. * The program routines just show the function but please be aware of the security part - * check yourself before using in the real world ! */ import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.file.Files; public class A11_CreateFileOfDefinedSize { public static void main(String[] args) throws IOException { System.out.println("A11 Erzeugung einer Datei mit definierter Länge"); String filenameString = "e:\\a11_test_1mb.dat"; createFileWithDefinedLength(filenameString, (1024 * 1024)); // 1024 * 1024 = 1 megabyte System.out.println("\nDatei erzeugt:" + filenameString); } private static void createFileWithDefinedLength(String filenameString, long lengthLong) throws IOException { Files.deleteIfExists(new File(filenameString).toPath()); RandomAccessFile raf = new RandomAccessFile(filenameString, "rw"); try { raf.setLength(lengthLong); } finally { raf.close(); } } } |
Die Konsolen-Ausgabe ist schmucklos:
1 2 3 |
A11 Erzeugung einer Datei mit definierter Länge Datei erzeugt:e:\a11_test_1mb.dat |
Den Quellcode zum Programm findet Ihr zum Download in meinem Github-Repository, welches Ihr über diesen Link erreicht: https://github.com/java-crypto/A-Allgemeine-Programme. Dort findet Ihr auch die Versionen für Java 11.
Die Lizenz zum obigen Beispiel findet Ihr auf der eigenen Lizenz-Seite.