RO : Le condensé Gamoréen

ou la fonction de hachage du stagiaire

Ce défi est tiré de c0d1ngUP 2018

Les espions rebelles ont pu infiltrer les services informatiques de l'empire. Vous avez maintenant en votre possession la base de données login/mot de passe de plusieurs éminents représentants de l'empire. Les mots de passe ne sont toutefois pas stockés en clair mais sous la forme d'un condensé.

login       | mot de passe
------------|------------------------
emperor     | 18682e370f6d386f72727272
darthvader  | 735f6b5d47407406465a0140
darthmaul   | 6a4849456874464555421e1f

Heureusement pour vous, il semble que ce calcul de condensé ait été fait par un stagiaire Gamoréen particulièrement peu perspicace. Il est donc peut être possible de tirer quelque chose de ces données. L'agent des forces rebelles qui a dérobé les informations a aussi mis la main sur un rapport décrivant le calcul des condensés. Il est incomplet, mais vous avez tout de même un schéma :

Sur ce schéma, toutes les valeurs numériques sont en hexadécimal. Vous comprenez que le schéma illustre la manière de calculer le condensé d'une chaîne de caractères, ici «Jabba est une immonde limace». À l'étape 1, on tronçonne la chaîne en paquets de 12 caractères. Si le dernier paquet n'est pas complet, on complète avec des points «.». Si la chaîne de départ fait moins de 12 caractères, on n'aura donc qu'un seul bloc à cette étape. À l'étape 2, on remplace chaque lettre par son code ASCII. Le code est ici indiqué en hexadécimal. À l'étape 3, on effectue une opération Ou exclusif sur chaque colonne (il y a donc ici trois opérandes). Par exemple, la valeur 39 est obtenue en faisant un ou exclusif entre 73, 64, et 2e. On obtient donc à l'étape 3 une seule série de 12 nombres.

Pour calculer le k-ième nombre à l'étape 4, on fait un ou exclusif entre toutes les valeurs de l'étape 3, sauf la k-ième. Ainsi, la valeur 12 est obtenue en faisant un ou exclusif entre 42, 20, 68, 6a, 61, 25, 39, 3f, 2e, 37 et 29. De même, la valeur 1e est obtenue en faisant un ou exclusif entre les valeurs 42, 20, 68, 6a, 22, 61, 25, 39, 3f, 37 et 29.

Le résultat est un nombre hexadécimal de 24 symboles, c'est le condensé de la chaîne de caractères de départ :

7210585a125115090f1e0719

Arriverez-vous, en utilisant la base de données dérobée, à vous connecter sur le réseau privé de l'empire, accessible ici ? Page de login

Si vous parvenez à vous connecter au compte des dirigeants, peut être découvrirez-vous les deux prochaines cibles de l'empire. Validez le défi en donnant les noms des cibles.

Type de retour
une chaîne de caractères
Entrées du problème
Pas de données d'entrée
Vous devez être connecté.e pour proposer une réponse au défi
Vous devez être connecté.e pour accéder aux forums.