Ho creato più file DMG dalla stessa cartella - il checksum è diverso su ciascuno?

3

Molto tempo fa ho notato che anche se creo file DMG dalla stessa directory, con gli stessi file e così via, i risultati sono sempre diversi. Non solo le loro dimensioni sono ~ 15 byte più corte / più lunghe l'una dall'altra, ma i loro checksum SHA (e il loro contenuto, se visualizzati dall'editor HEX) differiscono drasticamente. Solo per curiosità, ho creato 5 file DMG non crittografati compressi dalla stessa cartella contenente nient'altro che un singolo file di testo. I risultati sono:

  • 0.dmg | dimensione - 26 204 byte, somma di controllo - 5ba9ba0ee4d8ec5ba4718f1b491baf31c2c4e642
  • 1.dmg | dimensione - 26 221 byte, somma di controllo - a86d76f6c07ee5a81c0aefb31b6fd40ef787ebd5
  • 2.dmg | dimensione - 26 235 byte, somma di controllo - a31f4cf29e4e2858b7ac63c82574499200d81108
  • 3.dmg | dimensione - 26 209 byte, somma di controllo - f3c19414279b6d6b94b90341453906e4a69e28dd
  • 4.dmg | dimensione: 26 217 byte, checksum - 9603c0334125762fc7908343e3ee400e038fe779

Ho navigato in internet sperando di trovare qualcosa sul "randomizzatore di dati in APFS", ma ... ovviamente non ho potuto trovare una singola cosa, e inoltre, molte persone non ne erano a conoscenza " caratteristica". C'è qualche informazione a riguardo?

Sto usando macOS 10.12.6, i file DMG sono stati creati usando Utility Disco, ma ottengo gli stessi risultati con hdiutil.

    
posta L0W_P1X3L 22.03.2018 - 18:29
fonte

1 risposta

3

Le copie di un dmg esistente saranno identiche ma non verranno create%% di filedmg.

Effettivamente garantito a differenza

Il formato Apple Disk Image .dmg garantisce in modo efficace che nessuna immagine del disco sia bit per bit identica. L'uguaglianza tra le immagini del disco che contengono gli stessi contenuti non è un requisito pratico del formato.

UUID all'interno del 0x6B6F6C79 / koly Blocco

Nel formato di file dmg c'è la struttura koly . Questa struttura include un SegmentID di tipo uuid_t . Questo è un identificatore universale univoco a 128 bit ( UUID ). L'identificatore SegmentID da solo garantirà che ogni% di file% co_de differisce di più di un bit.

L'utilizzo di HFSleuth nell'immagine del disco di iTunes 11.0 mostra l'UUID incorporato:

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

Nell'esempio sopra, la riga dmg è un identificatore universalmente univoco incorporato nell'immagine del disco.

Differenze a un bit e funzioni hash

Una differenza in un bit dovrebbe comportare un cambiamento del 50% o più in un output di funzione hash crittografico, come SHA-2.

L'uso di un UUID all'interno della struttura non garantisce che ogni immagine del disco sia unica ma faciliti l'identificazione del segmento all'interno dell'immagine del disco. Che un UUID fornisca proprietà di unicità oltre l'ambito dell'immagine del disco è un sottoprodotto dell'uso dell'UUID.

    
risposta data 23.03.2018 - 08:43
fonte

Leggi altre domande sui tag