Hace bastante tiempo me di cuenta de que incluso si creo archivos DMG desde el mismo directorio, con los mismos archivos, etc., los resultados siempre son diferentes. No solo su tamaño es ~15 bytes más corto/más largo entre sí, sino que sus sumas de verificación SHA (y sus contenidos, cuando se ven desde el editor HEX) difieren drásticamente. Solo por curiosidad, he creado 5 archivos DMG comprimidos sin cifrar de la misma carpeta que contiene nada más que un solo archivo de texto. Los resultados son:
He estado navegando por Internet con la esperanza de encontrar algo sobre el "aleatorizador de datos en APFS", pero... obviamente no pude encontrar nada y, además, no mucha gente sabía sobre esta "característica". ¿Hay alguna información al respecto?
Estoy ejecutando macOS 10.12.6, los archivos DMG se crearon con Disk Utility, pero obtengo los mismos resultados con hdiutil.
Las copias de uno existente dmg
serán idénticas, pero dmg
los archivos creados por separado no lo serán.
El formato de imagen de disco de Apple .dmg
garantiza efectivamente que no habrá dos imágenes de disco idénticas bit a bit. La igualdad entre imágenes de disco que contienen el mismo contenido no es un requisito práctico del formato.
0x6B6F6C79
/koly
Dentro del dmg
formato de archivo se encuentra la koly
estructura . Esta estructura incluye un SegmentID de tipo uuid_t
. Este es un identificador único universal ( UUID ) de 128 bits. El identificador SegmentID por sí solo garantizará que cada dmg
archivo difiera en más de un bit.
El uso de HFSleuth en la imagen de disco de iTunes 11.0 muestra el UUID incrustado:
HFSleuth> ver
Verbose output is on
HFSleuth> fs iTunes11.dmg
KOLY header found at 200363895:
UDIF version 4, Header Size: 512
Flags:1
Rsrc fork: None
Data fork: from 0, spanning 200307220 bytes
XML plist: from 200307220, spanning 56675 bytes (to 200363895)
Segment #: 1, Count: 1
Segment UUID: 626f726e-7743259b-6086eb93-4b42fb65
Running Data fork offset 0
Sectors: 1022244
En el ejemplo anterior, la línea Segment UUID: 626f726e-7743259b-6086eb93-4b42fb65
es un identificador único universal incrustado en la imagen del disco.
Una diferencia en un bit debería dar como resultado un cambio del 50 % o más en la salida de una función hash criptográfica, como SHA-2.
El uso de un UUID dentro de la estructura no es para garantizar que cada imagen de disco sea única, sino para facilitar la identificación de segmentos dentro de la imagen de disco. Que un UUID proporcione propiedades únicas más allá del alcance de la imagen del disco es un subproducto del uso del UUID.
jsejcksn
Chico sin pretensiones
L0W_P1X3L
L0W_P1X3L
L0W_P1X3L
gordon davisson