Wie würde ich vergleichen 2 unsigned char arrays?

Ich habe einen server das berechnen der hash eines Bildes und sendet das Bild und hash an den client. Ich habe den client computing der hash von dem Bild, das Sie erhält. Dies ist das grundlegende setup aus:

SERVER

unsigned char sum[MD5_DIGEST_LENGTH];
md5sum(tdata, sum);
w = write(newsockfd,sum,MD5_DIGEST_LENGTH);

CLIENT

unsigned char ssum[MD5_DIGEST_LENGTH];
w = read(sockfd,ssum,MD5_DIGEST_LENGTH);
unsigned char sum[MD5_DIGEST_LENGTH];
md5sum(imgpath, sum);
int j;
for (j = 0; j < MD5_DIGEST_LENGTH; j++)
    printf("%02x", ssum[j]);
printf("\n");
printf("CLIENT CHECKSUM: ", sum);
    for (j = 0; j < MD5_DIGEST_LENGTH; j++)
        printf("%02x", sum[j]);
printf("\n");

Die Ausgänge sind exakt die gleichen, aber wie prüfe ich Ihre Gleichstellung mit einer if-Anweisung? Wenn ich das mache:

if (sum == ssum)

es immer als false ausgewertet wird.

Ein byte zu einem Zeitpunkt. Arrays können nicht verglichen werden, die durch ==, wie es nur vergleicht die Adressen, deren erstes element (das ist, wie Sie sehen, anders-und Sie sollten).
möglich, Duplikat der C-String-Mit Gleichheits-Operator == für den Vergleich von zwei strings auf Gleichheit

InformationsquelleAutor Clinton Jooooones | 2015-05-10

Schreibe einen Kommentar