Отмазка: Дальнейший текст может содержать ошибки, никаких гарантий его работоспособности и безопасности я не даю.
Смотреть много кода
и вот так готовились данные для тестирования нейросети
сначала генерировались строки такого вида, они представляют собой искомый результат:
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
затем примерно так из них получались хэши для обучения нейронной сети
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;
что давало на выходе примерно следующее:
затем зти строки подавались на вход в sha256
// 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"); //
результат работы в таких:
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 [...]
файлах скармливались нейронной сети как обучающая и тестовая выборки.
ссылка на оригинал статьи https://habr.com/post/423839/
Добавить комментарий