test sha256 par toothOK pour le réseau neuronal

Chers collègues.
J'ai retrouvé mes anciens échantillons inversés, malheureusement pas la dernière version.

Je ne me souviens pas de tous les détails très précisément, l'expérience a été menée en 2012, mais au fur et à mesure qu'ils creusent dans le code, ils apparaissent plus clairement.

Avertissement: le code supplémentaire est sorti de son contexte, une description de son fonctionnement est faite à partir de la mémoire et peut contenir des erreurs, est fournie à des fins éducatives uniquement.


C'est ainsi que les données ont été préparées pour la formation et le test du réseau neuronal. Tout d'abord, des chaînes de ce type ont été générées; elles représentent le résultat souhaité:

spins : 0; server code word : 74b0dc5166334873643c9869327b23c6 spins : 1; server code word : 46e87ccd238e1f29625558ec2ae8944a spins : 2; server code word : 79e2a9e341b71efb2eb141f2507ed7ab spins : 3; server code word : 4db127f8122008545bd062c2515f007c spins : 4; server code word : 140e0f7666ef438d1190cde71f16e9e8 


Ensuite, quelque chose comme ça s'est avéré être un hachage pour former le réseau neuronal.

 FILE *fp; sha256_context stx; int ss,zz,yy,ii,jj,zzi; unsigned long int pdata; fp = fopen("data_src", "rb"); if(!fp) return 1; // bail out if file not found while(fgets(str,sizeof(str),fp) != NULL) { zz=0; // strip trailing '\n' if it exists int len = strlen(str)-1; if(str[len] == '\n') str[len] = 0; sha256_starts( &stx ); sha256_update( &stx, (uint8 *) str, strlen( str ) ); sha256_finish( &stx, sha256sum ); zz=stx.zzz; 

Ce qui a donné à la sortie quelque chose comme ceci:

 d34453f3c04552ee19cb6734ab71ad124710cfc98401570f73f65cb8cfa2a64d 6cc8ca5b918d1a22d5141494ad08b76a6c67cd5f649744f80d2fad4916b2b6d9 f89e9fd9609099b22924a77a5c8122c06118608c4287fca1cdafe5827249bce7 35280fd1e2289488828004682679452a070ccd90c12072fcb904529ab18e3f9d 1112c4cffb617c835874446f13c4d7d29fa091ba7ac996b776998f89dedffcc1 02e0521aae2d4ecdeb4482bda545bb222e1280ec1f580d5d23e29fb719252f70 

Ensuite, tout cela s'est déroulé petit à petit:

 // printf("\n\n\nSUM="); //    sha256   printf ("%d 512 512",zz); zf(str1); for( j = 0; j < 32; j++ ) { sprintf(str1,"%s%s",str1, ui2bin(sha256sum[j])); } //   512  while(strlen(str1)<512) { sprintf(str1,"%s%s",str1,"0"); } //printf("%s\n",str1); jj=0; ii=0; //    sha256     while(str2[jj]=str1[ii]) { ii++; jj=jj+2; str2[jj-1]=*" "; } printf("%s",str2); // str2 -  sha2    // printf("\n"); // 

Le résultat du travail dans tel:

 855 1408 1408 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [...] 

les fichiers ont été introduits dans le réseau neuronal comme échantillon d'apprentissage et de test.
utilisé la bibliothèque FANN, essayé différents neurones.
Le résultat a certes été, mais a été mitigé. Il n'a pas été possible de restaurer complètement le texte d'origine.
Cependant, des fragments d'une partie des lignes se sont parfois glissés avec une restauration assez précise.
Je pense que ce problème a une solution, seulement pour le trouver, vous devez encore faire un effort.
Par exemple, il est logique d'alimenter toutes les variables internes de l'algorithme de hachage à l'entrée réseau pendant la formation. Il est également judicieux de lancer des réseaux compétitifs et d'enseigner à un autre réseau à reconnaître le résultat de la consultation.
Ces curieuses expériences peuvent désormais être réalisées beaucoup plus facilement qu'en 2012.
Avec l'avènement d'outils comme Python avec Tensorflow, sklearn numpy, scipy et un trésor de référentiel, tout cela est devenu beaucoup plus facile à vérifier.

Source: https://habr.com/ru/post/fr423839/


All Articles