L'aggiunta di tag Yosemite a un file modifica la sua firma MD5?


-1

Ho un sistema di backup cloud che si basa sulle firme hash MD5 per la deduplicazione.

L'aggiunta di tag OSX a un file modifica l'hash MD5?

EDIT: ho fatto alcuni test e ho ottenuto risultati contrastanti a seconda del tipo di file / app utilizzata. Quindi non sono sicuro se il tag stesso sta facendo la differenza o qualcos'altro cambia dall'app.


Hai provato con un file di esempio e tag?
Nohillside

1
Ci sarebbero voluti circa 15 secondi per testare ... no, non fa differenza, né cambia il nome.
Tetsujin,

Non so come fare un test controllato. Ho provato un file .txt e non ha fatto alcuna differenza, tuttavia su un file PDF è cambiato, quindi non sono sicuro se è a causa del tag stesso o di qualcos'altro che l'app di anteprima cambia sul file PDF.
Alex Cuervo,

Come hai aggiunto il tag?
samh,

Facendo clic sul nome del file nella barra del titolo.
Alex Cuervo,

Risposte:


2

Ho eseguito il file md5 in Terminal.app, ho applicato un tag al file e ho eseguito nuovamente md5 . L'hash restituito è stato lo stesso. Senza conoscere la configurazione esatta è impossibile saperlo con certezza, ma sembra che tu stia bene.


2

Una cosa a cui ho pensato che potrebbe influenzare il risultato è quali tag stai aggiungendo e come. I colori delle etichette tradizionali (rosso, arancione, ...) sono memorizzati in un sottocampo a 3 bit del campo FinderInfo del record del catalogo HFS + per il file. Le nuove etichette vengono invece archiviate in un attributo esteso del file.

Con il nuovo schema, se Finder imposta il tag, lo inserisce sempre (o loro) nell'attributo com.apple.metadata:_kMDItemUserTagsesteso. Se un'altra applicazione imposta l'indice dell'etichetta, ad esempio con il comando AppleScript

tell application "Finder" to set label index of someFile to 3

l'indice dell'etichetta è impostato in FinderInfo. Un valore diverso da zero per FinderInfo fa sì che il xattrcomando lo elenchi come se fosse l'attributo esteso com.apple.FinderInfo, dove è possibile vedere l'indice dell'etichetta come tre dei bit nel decimo byte. L'interazione tra questi due campi è complessa. A volte modificando l'uno si cancella l'altro, a volte no.

md5 potrebbe essere influenzato in modo diverso a seconda dei metadati, se presenti, inclusi nel checksum rispetto ai metadati interessati dal metodo utilizzato per impostare l'etichetta.

La buona notizia è che md5sembra ignorare tutti i metadati. Calcola un checksum del solo fork dei dati. Non incorpora nemmeno il fork delle risorse. (Per eseguire il checksum del fork delle risorse, è necessario richiederlo esplicitamente, come in md5 "Icon^M"/..namedfork/rsrc, ma poi il fork delle risorse è l' unica cosa che guarda.)


Questo sarebbe, imo, la cosa ragionevole da fare - il fork delle risorse non sarebbe necessariamente arrivato a un altro computer, quindi sembrerebbe quasi casualmente rompere i checksum, altrimenti.
Tetsujin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.