- Une méthode qui consiste à faire en sorte que le premier commit commence par le hash
0000000, puis le deuxième par 0000001, afin que la numérotation soit visible de façon intuitive
- Pour trouver de telles valeurs d’en-tête de hash, il faut ajuster le hash SHA-1 en insérant des données parasites dans le message de commit
- Sur MacBook, avec l’outil
githashcrash, on peut trouver un préfixe de hash de 8 caractères en 5 minutes, et de 6 caractères en moins d’une seconde
- Le tout est automatisé avec
bash-glue sous le nom git linearize
lucky-commit est utilisé comme backend de génération de hash, et avec un GPU, la génération peut être 20x plus rapide
→ Comme lucky-commit modifie le message de commit avec des espaces invisibles plutôt qu’avec du texte parasite, le résultat reste visuellement acceptable
9 commentaires
C'est amusant, haha. Avec les 8 premiers caractères, les données parasites ne sont même pas si longues.
Mdr... je suis vraiment curieux de savoir ce que Linus dirait s’il voyait ça..
Ça ressemble un peu... au calcul de la valeur de nonce dans la blockchain.
Autant utiliser svn, au moins les numéros de révision s’empileraient proprement......
Sauf votre respect, si le premier est 0000000, le deuxième ne devrait-il pas être 0000001 ? Il semble qu’il y ait une faute de frappe, haha...
Oups, hehe, c’est corrigé.
On sent presque une forme de maniaquerie. Mais c'est tout de même impressionnant d'avoir eu l'idée puis de l'avoir mise en œuvre. Est-ce simplement du brute-force ?
On dirait du minage de bitcoin, haha.
Faites de GitHub une place de marché !