Come spiegato lì , gli hash SHA-1 sono identificatori per gli oggetti memorizzati , compresi i commit: sono calcolati in modo deterministico dal contenuto dell'oggetto. Non c'è segreto in là. Sebbene SHA-1 sia nominalmente a senso unico, questo teoricamente consente a un utente malintenzionato, che vuole indovinare il contenuto di un oggetto, di verificare se la sua ipotesi è corretta o meno . Ciò comporterebbe indovinare esattamente , fino all'ultimo bit, inclusi i timestamp e altre cose simili.
Se il tuo oggetto contiene alcuni dati segreti che possono essere forzati brute (ad esempio una password, soggetti agli attacchi al dizionario ) quindi un utente potrebbe utilizzare l'hash SHA-1 come test. Questo sembra difficile a causa della condizione di indovinare tutto il resto correttamente, ma la possibilità è lì. Pertanto, se il tuo commit contiene tali dati segreti, hai ragione a cambiare il valore hash - ma in tal caso, non cambiarlo leggermente , perché un quasi- la partita è valida come una corrispondenza esatta sui valori hash, per l'attaccante. Modifica completamente i valori hash: sostituisci ognuno di essi con una sequenza di 40 caratteri esadecimali casuali.
Nota che conoscere i valori hash non concede nessun altro potere aggiuntivo all'attaccante; in particolare, non gli danno accesso al repository.