md5 umwandeln
-
Wie kann ich aus der digest Zeichekette eine normale lesbare Zeichenkette machen?
Bei der Ausgabe mit printf geht es durch "%02X". Diese Ausgabe möchte ich in einer separaten zeichenkette haben zur weiterverarbeitung.#ifndef _CRT_SECURE_NO_DEPRECATE #define _CRT_SECURE_NO_DEPRECATE 1 #endif #include <stdio.h> #include "md5.h" int main( void ) { int i; unsigned char digest[16]; char rx_string[] = "cha;1213692808693"; char secret[30] = "test"; char test[16]; printf( "%s Länge %d\n", secret, strlen(secret)); strncpy(secret+4, rx_string+4, 13 ); printf( "%s Länge %d\n", secret, strlen(secret)); md5( (unsigned char *) secret, 22, digest ); printf( "md5 %s\n", digest); printf( "MD5('%s') = \n", secret ); for( i = 0; i < 16; i++ ) printf( "%02X", digest[i] ); printf( "\n\n" ); #ifdef WIN32 printf( " Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif return( 0 ); }
-
snprintf()
-
danke für den tipp
ich hab es so versucht, dann stürtr es aber ab
char test[32]; for( i = 0; i < 16; i++ ) snprintf( test[i], 32, "%02X", digest[i] );
-
Hallo,
ein Zeichen mehr für test (für die Nullterminierung), und dann daran denken, snprintf den richtigen Zeiger zu übergeben:
char test[33] = {0,}; for( i = 0; i < 16; i++ ) snprintf( test + i * 2, 2, "%02X", digest[i] );
MfG,
Probe-Nutzer