Olá, tenho um trabalho para fazer, mas estou tendo dificuldades com o código.
O trabalho é o seguinte:
"Faça um programa que gere hashes de arquivos de texto e verifique se mesmos são idênticos através da comparação dos hashes.
No menu inicial deve ser mostrada a seguinte interface:
Nome ou caminho completo do arquivo 1:
Nome ou caminho completo do arquivo 2:
A saída deve ser mostrada conforme segue:
Os arquivos são iguais.
Hash:
Ou
Os arquivos não são iguais.
Hash 1:
Hash 2:
O código que criei é este:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
FILE *hash;
FILE *hash1;
char m[101];
char m1[101];
int t;
int t1;
if((hash = fopen("Meu_arquivo.txt","w")) == NULL)
{
printf("Erro ao abrir arquivo!!!\n");
exit(1);
}
printf("Nome ou caminho completo do arquivo 1: \n");
gets(m);
t = strlen(m);
fwrite(m, sizeof(char), t, hash);
if((hash1 = fopen("Meu_arquivo.txt1","w")) == NULL)
{
printf("Erro ao abrir arquivo!!!\n");
exit(1);
}
printf("Nome ou caminho completo do arquivo 2:\n");
gets(m1);
t1 = strlen(m1);
fwrite(m1, sizeof(char), t1, hash1);
if (m == m1)
printf("Os arquivos sao iguais.\n Hash: %s", m, hash, m1, hash1);
else
printf("Os arquivos nao sao iguais.\nHash 1: %s \nHash 2: %s ", m, m1, hash, hash1);
}
E quando vou processar, sempre aparece que são diferentes, nunca que são iguais. Alguém poderia me ajudar?
OBS: Eu não sei se estou utilizando hash da maneira certa.