In che modo git usa SHA-1 per rilevare la corruzione nei trasferimenti?

3

Ho letto sul git in Apress il libro "Pro Git". Viene menzionato che SHA-1 viene utilizzato per rilevare le modifiche ai commit e anche per verificare che non ci sia corruzione durante il pull dal server. Sono a conoscenza del messaggio che rileva il cambiamento, ma come viene controllato e presumibilmente corretto per la corruzione? La pagina di Wikipedia per SHA-1 non menziona funzionalità come CRC.

Grazie,

Scott

    
posta Scott Davies 15.03.2011 - 15:38
fonte

3 risposte

4

Fondamentalmente come CRC, solo con uno spazio dei risultati molto più ampio, quindi c'è meno possibilità di una collisione. Questo è in realtà fatto abbastanza frequentemente con hashing crittografico e progetti open-source. Vedrò spesso un sito di download che dice "Ecco il link, ed ecco un hash MD5 ed ecco un hash SHA, quindi puoi verificare l'integrità del download.

    
risposta data 15.03.2011 - 15:46
fonte
0

In pratica, ogni volta che ottieni un hash crittografico (digest di messaggi) dallo stesso set di byte, sarà sempre lo stesso risultato. L'aspetto importante è che se un bit è disattivato, il digest del messaggio sarà molto diverso.

Quando GIT esegue un trasferimento di dati, passa anche il digest del messaggio per i file interessati insieme ai file stessi. Il client esegue nuovamente l'hash crittografico e confronta il suo calcolo con quello fornito dal server. Se non corrispondono, chiede di nuovo il contenuto.

    
risposta data 15.03.2011 - 15:55
fonte
0

Non sono sicuro della tecnologia specifica che stai usando, ma questo concetto potrebbe aiutarti a capire. (Anche se puoi già capirlo)

Concetto chiave: La stessa fonte inserita in un hash (SHA-1) otterrà sempre lo stesso risultato.

Quindi, prima del trasferimento, la sorgente viene passata attraverso SHA-1 e il risultato viene inviato. Quando il ricevitore riceve la sorgente e il suo risultato SHA-1, la sorgente ricevuta viene passata attraverso SHA-1 e il risultato viene verificato con il risultato ricevuto. Se differiscono da una modifica, si è verificato un errore e possono essere presi provvedimenti per porvi rimedio.

AFAIK l'unico modo efficace per rimediare (correggere) il danneggiamento è richiedere nuovamente le informazioni.

    
risposta data 15.03.2011 - 15:53
fonte

Leggi altre domande sui tag