Est-il une commande pour écrire aléatoire d'ordures octets dans un fichier?
Je suis en train de faire quelques tests de mon application à nouveau des fichiers corrompus. Mais je trouve qu'il est difficile de trouver des fichiers de test.
Alors je me demandais si il existe quelques outils existants, ce qui peut écriture aléatoire/ordures octets dans un fichier d'un format.
En gros, j'ai besoin de cet outil pour:
- Il écrit aléatoire d'ordures octets dans le fichier.
- Il n'a pas besoin de connaître le format du fichier, il suffit de l'écriture d'octets aléatoires sont OK pour moi.
- Il est préférable d'écrire à des positions aléatoires du fichier cible.
- Le traitement par lots est également un bonus.
Grâce.
Vous devez vous connecter pour publier un commentaire.
La
/dev/urandom
pseudo-périphérique, avecdd
, peut le faire pour vous:Cela va créer un fichier
newfile
de taille 10M.La
/dev/random
appareil bloquent souvent si il n'y a pas suffisamment de caractère aléatoire construit,urandom
ne va pas bloquer. Si vous utilisez le caractère aléatoire de crypto-grade trucs, vous pouvez orienter clairement de laurandom
. Pour le reste, il devrait être suffisant, et probablement plus rapide.Si vous voulez corrompre peu de bits de votre fichier (et non pas l'ensemble du fichier), vous pouvez simplement utiliser le C-style de fonctions aléatoires. Utilisez simplement
rnd()
de comprendre un décalage de longueur et den
, puis l'utilisern
fois pour saisir des octets aléatoires pour remplacer votre fichier.Le script Perl suivant montre comment cela peut être fait (sans avoir à vous soucier de la compilation de code C):
Il se compose de la
corrupt
fonction de ce que vous appelez avec un nom de fichier, minimale et maximale de la corruption de la taille et un jeu de caractères à dessiner la corruption. La peu en bas, c'est juste de l'unité de test de code. Voici un exemple de sortie où vous pouvez voir qu'une partie du fichier a été corrompu:Il est testé au niveau de base, mais vous pouvez y trouver sont edge cas d'erreur, qui doivent être pris en charge. Faire ce que vous voulez.
urandom
n'est pas aussi rapide que je le voudrais.urandom
génère des séquences assez bon pour créer des clés privées. Je n'ai pas besoin de telles garanties, mais veulent une plus grande vitesse.iflag=fullblock
et définircount=1
dd
semble vouloirbs=1m
avec des minuscules m pour méga-octets, va se plaindre avec un m majuscule.Juste pour être complet, voici une autre façon de faire:
Écrit 10 octets aléatoires à stdout et redirige vers un fichier.
shred
est généralement utilisé pour détruire (en toute sécurité par écrasement) des données, mais il peut être utilisé pour créer de nouveaux fichiers aléatoires trop.Donc, si vous disposez déjà d'un fichier que vous voulez remplir avec des données aléatoires, utilisez ceci:
urandom
?Vous avez pu lire de
/dev/random
:Vous pouvez spécifier la taille aussi humaine lisible:
/dev/random
est trop lent. Pas ce que l'auteur a voulu. -1