• [^] # Re: Wikipédia, par exemple

    Posté par . En réponse au message Manipulation de clé. Évalué à 2.

    Regarde bien l'article sur le MD5, par exemple : tout y est expliqué : l'algorithme, le synoptique, et même un bout de pseudo-code. Cela n'a rien à voir avec la description d'une API.

    Gérer une clé de 1024 bits se fait de la même manière que pour une clé de 128. Dès lors que l'on dépasse la taille d'un registre (ou des types prédéfinis), il faut vectoriser. Le plus simple est effectivement d'utiliser un tableau d'octets consécutifs.

    La plupart du temps, il s'agit de décalage et d'opération bit à bits, et de quelques opérations arithmétiques (domaines dans lesquels le jeu d'instruction d'un CPU excelle, généralement).

    Si ce qui te préoccupe en premier lieu est la manière de traiter de grands objets, cela se fait généralement comme à l'école, en arithmétique, avec une retenue du format des blocs que l'on traite. Cela peut être un bit, un octet, un long de 32 bits, etc. Par exemple, lorsque l'on calcule des CRC, on est amené à considérer tout un bloc de données comme un immense nombre qu'il faudrait diviser par une valeur fixe. Pour ce faire, le plus simple est d'utiliser l'approche habituelle : tu commences par le premier octet (ou plus précisément le premier bloc du format de ton diviseur), tu soustrais, tu décale, et tu "fais descendre" le bloc suivant simplement en allant le lire en mémoire.

    En fait, il faut se souvenir que ce qui est applicable en base 10 l'est généralement dans les autres aussi. Tu peux travailler en base 2, s'il le faut, comme en base 256,