human
SHA256 Hachage . Bonjour ELI5, j'essaie de comprendre les mathématiques et le pseudocode suivants : URL_0 Quelqu'un peut-il prendre "Hello World" et le transformer en un hachage SHA256 étape par étape, comme indiqué dans le wiki ci-dessus, s'il vous plaît ? Explique comme si j'avais cinq ans.
gpt
Vous ne verrez rien d'utile dans un exemple étape par étape, à moins que vous ne vouliez vérifier votre propre implémentation. Si vous voulez vraiment des étapes intermédiaires, c'est parti : URL_0 SHA256 fonctionne en divisant l'entrée en blocs de 512 bits (si l'entrée n'en est pas un multiple, l'entrée sera rembourrée), ce qui donne `n' blocs de 512 bits de 64 octets chacun , appelés ` M1 ` à ` Mn ` . Ensuite, une valeur `X0` est initialisée à une valeur par défaut de 256 bits définie par la norme, qui sont les 32 premiers bits de la décimale de la racine carrée des 8 premiers nombres premiers. Ensuite , l' algorithme traitera chaque bloc en séquence , calculant ` Xi ` comme ` Xi = f(Mi , Xi-1 ) ` , et après le dernier tour la valeur de hachage finale est dans ` Xn ` . La véritable magie de SHA256 se produit dans la fonction ` f ` , qui prend un bloc de 512 bits et un bloc de 256 bits ( ` Mi ` et ` Xi-1 ` respectivement ) et les compresse en un bloc de 256 bits . Chaque tour fonctionne comme suit : 1 . Développez le bloc de 512 bits en un tableau de 64 mots ` W ` 2 . Copiez les 16 mots de l' entrée dans ` W0 ` à ` W16 ` 3 . Pour les 48 mots restants , appliquez la méthode suivante : ` W[t ] = MIX(W[t - 2 ] , W[t - 7 ] , W[t - 15 ] , W[t - 16 ] ) ` C'est le bloc avec le commentaire "Étendre les 16 premiers mots dans les 48 mots restants du tableau de programme de messages" sur Wikipedia, l'opération parcourt les 48 mots restants et leur applique une série d'opérations binaires. 4 . Ensuite, parcourez les 64 mots et compressez-les jusqu'à 256 bits, en utilisant plus d'opérations binaires (c'est simple à comprendre à partir de l'article de wikipedia). Je sais que ce n'est pas vraiment ELI5, mais j'ai peur que ce ne soit pas le cas. c'est facile à abrutir ( j'ai essayé autant que possible ) . J'espère que cela vous aidera à comprendre au moins l'essentiel de SHA256 afin que vous puissiez donner un sens au pseudo-code. Edit : Changement des indices pour l'étape d'expansion de `i` à `t` pour éviter toute confusion.