#include #include #include #include "sha-256.h" #include int main(int argc, char** argv) { const char hash_a_comparar [65]; printf("Digite o Hash a comparar: \n"); scanf("%s", hash_a_comparar); printf("\nO Hash para comparar:\n%s\n\n", hash_a_comparar); clock_t Ticks[2]; Ticks[0] = clock(); char codigo[16]; uint8_t hash[32]; char hash_string[65]; int Cod_1a25,dig_Alfa,Cod_lugar; int dig2, dig3, dig4, dig5, dig6, dig7, dig8, dig9, dig10, dig11, dig12; char vChairs[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'}; char vChairs2[] = {'1', '2', 'i', '0', 'l', '3', 't', '4', 'T', '5', 'r', '6', 'R', '7', 'c', '8', 'C', '9', 'Y', 'y', 'b', 'd', 'z', 'B', 'D', 'Z', 'g', 'G', 'I','L', 'K', 'k', 'q', 'Q', 'a', 'A', 'e', 'j', 'E', 'J', 'v', 'V', 'h', 'H', 'O', 'o', 'm', 'M', 'X', 'x', 'S', 's', 'U', 'u', 'w', 'W', 'p', 'P', 'F', 'f', 'N', 'n'}; char vChairs3[] = {'n', '1', '2', 'i', '0', 'l', '3', 't', '4', 'T', '5', 'r', '6', 'R', '7', 'c', '8', 'C', '9', 'Y', 'y', 'b', 'd', 'z', 'B', 'D', 'Z', 'g', 'G', 'I', 'L', 'K', 'k', 'q', 'Q', 'a', 'A', 'e', 'j', 'E', 'J', 'v', 'V', 'h', 'H', 'O', 'o', 'm', 'M', 'X', 'x', 'S', 's', 'U', 'u', 'w', 'W', 'p', 'P', 'F', 'f', 'N'}; char vChairs4[] = {'N', 'n', '1', '2', 'i', '0', 'l', '3', 't', '4', 'T', '5', 'r', '6', 'R', '7', 'c', '8', 'C', '9', 'Y', 'y', 'b', 'd', 'z', 'B', 'D', 'Z', 'g', 'G', 'I', 'L', 'K', 'k', 'q', 'Q', 'a', 'A', 'e', 'j', 'E', 'J', 'v', 'V', 'h', 'H', 'O', 'o', 'm', 'M', 'X', 'x', 'S', 's', 'U', 'u', 'w', 'W', 'p', 'P', 'F', 'f'}; char vChairs5[] = {'f', 'N', 'n', '1', '2', 'i', '0', 'l', '3', 't', '4', 'T', '5', 'r', '6', 'R', '7', 'c', '8', 'C', '9', 'Y', 'y', 'b', 'd', 'z', 'B', 'D', 'Z', 'g', 'G', 'I', 'L', 'K', 'k', 'q', 'Q', 'a', 'A', 'e', 'j', 'E', 'J', 'v', 'V', 'h', 'H', 'O', 'o', 'm', 'M', 'X', 'x', 'S', 's', 'U', 'u', 'w', 'W', 'p', 'P', 'F'}; char vChairs6[] = {'F', 'f', 'N', 'n', '1', '2', 'i', '0', 'l', '3', 't', '4', 'T', '5', 'r', '6', 'R', '7', 'c', '8', 'C', '9', 'Y', 'y', 'b', 'd', 'z', 'B', 'D', 'Z', 'g', 'G', 'I', 'L', 'K', 'k', 'q', 'Q', 'a', 'A', 'e', 'j', 'E', 'J', 'v', 'V', 'h', 'H', 'O', 'o', 'm', 'M', 'X', 'x', 'S', 's', 'U', 'u', 'w', 'W', 'p', 'P'}; char vChairs7[] = {'P', 'F', 'f', 'N', 'n', '1', '2', 'i', '0', 'l', '3', 't', '4', 'T', '5', 'r', '6', 'R', '7', 'c', '8', 'C', '9', 'Y', 'y', 'b', 'd', 'z', 'B', 'D', 'Z', 'g', 'G', 'I', 'L', 'K', 'k', 'q', 'Q', 'a', 'A', 'e', 'j', 'E', 'J', 'v', 'V', 'h', 'H', 'O', 'o', 'm', 'M', 'X', 'x', 'S', 's', 'U', 'u', 'w', 'W', 'p'}; char vChairs8[] = {'p', 'P', 'F', 'f', 'N', 'n', '1', '2', 'i', '0', 'l', '3', 't', '4', 'T', '5', 'r', '6', 'R', '7', 'c', '8', 'C', '9', 'Y', 'y', 'b', 'd', 'z', 'B', 'D', 'Z', 'g', 'G', 'I', 'L', 'K', 'k', 'q', 'Q', 'a', 'A', 'e', 'j', 'E', 'J', 'v', 'V', 'h', 'H', 'O', 'o', 'm', 'M', 'X', 'x', 'S', 's', 'U', 'u', 'w', 'W'}; char vChairs9[] = {'W', 'p', 'P', 'F', 'f', 'N', 'n', '1', '2', 'i', '0', 'l', '3', 't', '4', 'T', '5', 'r', '6', 'R', '7', 'c', '8', 'C', '9', 'Y', 'y', 'b', 'd', 'z', 'B', 'D', 'Z', 'g', 'G', 'I', 'L', 'K', 'k', 'q', 'Q', 'a', 'A', 'e', 'j', 'E', 'J', 'v', 'V', 'h', 'H', 'O', 'o', 'm', 'M', 'X', 'x', 'S', 's', 'U', 'u', 'w'}; char vChairs10[] = {'w', 'W', 'p', 'P', 'F', 'f', 'N', 'n', '1', '2', 'i', '0', 'l', '3', 't', '4', 'T', '5', 'r', '6', 'R', '7', 'c', '8', 'C', '9', 'Y', 'y', 'b', 'd', 'z', 'B', 'D', 'Z', 'g', 'G', 'I', 'L', 'K', 'k', 'q', 'Q', 'a', 'A', 'e', 'j', 'E', 'J', 'v', 'V', 'h', 'H', 'O', 'o', 'm', 'M', 'X', 'x', 'S', 's', 'U', 'u'}; char vChairs11[] = {'u', 'w', 'W', 'p', 'P', 'F', 'f', 'N', 'n', '1', '2', 'i', '0', 'l', '3', 't', '4', 'T', '5', 'r', '6', 'R', '7', 'c', '8', 'C', '9', 'Y', 'y', 'b', 'd', 'z', 'B', 'D', 'Z', 'g', 'G', 'I', 'L', 'K', 'k', 'q', 'Q', 'a', 'A', 'e', 'j', 'E', 'J', 'v', 'V', 'h', 'H', 'O', 'o', 'm', 'M', 'X', 'x', 'S', 's', 'U'}; char vChairs12[] = {'U', 'u', 'w', 'W', 'p', 'P', 'F', 'f', 'N', 'n', '1', '2', 'i', '0', 'l', '3', 't', '4', 'T', '5', 'r', '6', 'R', '7', 'c', '8', 'C', '9', 'Y', 'y', 'b', 'd', 'z', 'B', 'D', 'Z', 'g', 'G', 'I', 'L', 'K', 'k', 'q', 'Q', 'a', 'A', 'e', 'j', 'E', 'J', 'v', 'V', 'h', 'H', 'O', 'o', 'm', 'M', 'X', 'x', 'S', 's'}; for(dig2 = 0; dig2 <= 61; dig2++) { for(dig3 = 0; dig3 <= 62; dig3++) { for(dig4 = 0; dig4 <= 62; dig4++) { for(dig5 = 0; dig5 <= 62; dig5++) { for(dig6 = 0; dig6 <= 62; dig6++) { for(dig7 = 0; dig7 <= 62; dig7++) { for(dig8 = 0; dig8 <= 62; dig8++) { for(dig9 = 0; dig9 <= 62; dig9++) { for(dig10 = 0; dig10 <= 62; dig10++) { for(dig11 = 0; dig11 <= 62; dig11++) { for(dig12 = 0; dig12 <= 62; dig12++) { for(Cod_1a25 = 1; Cod_1a25 <= 25; Cod_1a25++) { for(dig_Alfa = 0; dig_Alfa <= 61; dig_Alfa++) { for(Cod_lugar = 1; Cod_lugar <= 12; Cod_lugar++) { switch (Cod_lugar) { case 1: sprintf (codigo, "%i-%c%c%c%c%c%c%c%c%c%c%c%c",Cod_1a25,vChairs[dig_Alfa],vChairs2[dig2],vChairs3[dig3],vChairs4[dig4],vChairs5[dig5],vChairs6[dig6],vChairs7[dig7],vChairs8[dig8],vChairs9[dig9],vChairs10[dig10],vChairs11[dig11],vChairs12[dig12]); calc_sha_256(hash, codigo, strlen(codigo)); hash_to_string(hash_string, hash); break; case 2: sprintf (codigo, "%i-%c%c%c%c%c%c%c%c%c%c%c%c",Cod_1a25,vChairs2[dig2],vChairs[dig_Alfa],vChairs3[dig3],vChairs4[dig4],vChairs5[dig5],vChairs6[dig6],vChairs7[dig7],vChairs8[dig8],vChairs9[dig9],vChairs10[dig10],vChairs11[dig11],vChairs12[dig12]); calc_sha_256(hash, codigo, strlen(codigo)); hash_to_string(hash_string, hash); break; case 3: sprintf (codigo, "%i-%c%c%c%c%c%c%c%c%c%c%c%c",Cod_1a25,vChairs2[dig2],vChairs3[dig3],vChairs[dig_Alfa],vChairs4[dig4],vChairs5[dig5],vChairs6[dig6],vChairs7[dig7],vChairs8[dig8],vChairs9[dig9],vChairs10[dig10],vChairs11[dig11],vChairs12[dig12]); calc_sha_256(hash, codigo, strlen(codigo)); hash_to_string(hash_string, hash); break; case 4: sprintf (codigo, "%i-%c%c%c%c%c%c%c%c%c%c%c%c",Cod_1a25,vChairs2[dig2],vChairs3[dig3],vChairs4[dig4],vChairs[dig_Alfa],vChairs5[dig5],vChairs6[dig6],vChairs7[dig7],vChairs8[dig8],vChairs9[dig9],vChairs10[dig10],vChairs11[dig11],vChairs12[dig12]); calc_sha_256(hash, codigo, strlen(codigo)); hash_to_string(hash_string, hash); break; case 5: sprintf (codigo, "%i-%c%c%c%c%c%c%c%c%c%c%c%c",Cod_1a25,vChairs2[dig2],vChairs3[dig3],vChairs4[dig4],vChairs5[dig5],vChairs[dig_Alfa],vChairs6[dig6],vChairs7[dig7],vChairs8[dig8],vChairs9[dig9],vChairs10[dig10],vChairs11[dig11],vChairs12[dig12]); calc_sha_256(hash, codigo, strlen(codigo)); hash_to_string(hash_string, hash); break; case 6: sprintf (codigo, "%i-%c%c%c%c%c%c%c%c%c%c%c%c",Cod_1a25,vChairs2[dig2],vChairs3[dig3],vChairs4[dig4],vChairs5[dig5],vChairs6[dig6],vChairs[dig_Alfa],vChairs7[dig7],vChairs8[dig8],vChairs9[dig9],vChairs10[dig10],vChairs11[dig11],vChairs12[dig12]); calc_sha_256(hash, codigo, strlen(codigo)); hash_to_string(hash_string, hash); break; case 7: sprintf (codigo, "%i-%c%c%c%c%c%c%c%c%c%c%c%c",Cod_1a25,vChairs2[dig2],vChairs3[dig3],vChairs4[dig4],vChairs5[dig5],vChairs6[dig6],vChairs7[dig7],vChairs[dig_Alfa],vChairs8[dig8],vChairs9[dig9],vChairs10[dig10],vChairs11[dig11],vChairs12[dig12]); calc_sha_256(hash, codigo, strlen(codigo)); hash_to_string(hash_string, hash); break; case 8: sprintf (codigo, "%i-%c%c%c%c%c%c%c%c%c%c%c%c",Cod_1a25,vChairs2[dig2],vChairs3[dig3],vChairs4[dig4],vChairs5[dig5],vChairs6[dig6],vChairs7[dig7],vChairs8[dig8],vChairs[dig_Alfa],vChairs9[dig9],vChairs10[dig10],vChairs11[dig11],vChairs12[dig12]); calc_sha_256(hash, codigo, strlen(codigo)); hash_to_string(hash_string, hash); break; case 9: sprintf (codigo, "%i-%c%c%c%c%c%c%c%c%c%c%c%c",Cod_1a25,vChairs2[dig2],vChairs3[dig3],vChairs4[dig4],vChairs5[dig5],vChairs6[dig6],vChairs7[dig7],vChairs8[dig8],vChairs9[dig9],vChairs[dig_Alfa],vChairs10[dig10],vChairs11[dig11],vChairs12[dig12]); calc_sha_256(hash, codigo, strlen(codigo)); hash_to_string(hash_string, hash); break; case 10: sprintf (codigo, "%i-%c%c%c%c%c%c%c%c%c%c%c%c",Cod_1a25,vChairs2[dig2],vChairs3[dig3],vChairs4[dig4],vChairs5[dig5],vChairs6[dig6],vChairs7[dig7],vChairs8[dig8],vChairs9[dig9],vChairs10[dig10],vChairs[dig_Alfa],vChairs11[dig11],vChairs12[dig12]); calc_sha_256(hash, codigo, strlen(codigo)); hash_to_string(hash_string, hash); break; case 11: sprintf (codigo, "%i-%c%c%c%c%c%c%c%c%c%c%c%c",Cod_1a25,vChairs2[dig2],vChairs3[dig3],vChairs4[dig4],vChairs5[dig5],vChairs6[dig6],vChairs7[dig7],vChairs8[dig8],vChairs9[dig9],vChairs10[dig10],vChairs11[dig11],vChairs[dig_Alfa],vChairs12[dig12]); calc_sha_256(hash, codigo, strlen(codigo)); hash_to_string(hash_string, hash); break; case 12: sprintf (codigo, "%i-%c%c%c%c%c%c%c%c%c%c%c%c",Cod_1a25,vChairs2[dig2],vChairs3[dig3],vChairs4[dig4],vChairs5[dig5],vChairs6[dig6],vChairs7[dig7],vChairs8[dig8],vChairs9[dig9],vChairs10[dig10],vChairs11[dig11],vChairs12[dig12],vChairs[dig_Alfa]); calc_sha_256(hash, codigo, strlen(codigo)); hash_to_string(hash_string, hash); break; } if(strcmp(hash_a_comparar, hash_string) == 0) { printf("Codigo: %s\n", codigo); printf("hash: %s\n", hash_string); Ticks[1] = clock(); double Tempo = (Ticks[1] - Ticks[0]) * 1000.0 / CLOCKS_PER_SEC; printf("\nTempo gasto: %g ms.\n\n", Tempo); system("pause"); return 0; } } } } } } } } } } } } } } } return 0; }