我知道SHA-1更受欢迎,但这个项目要求我使用MD5。
#include <openssl/md5.h>
- (NSString*) MD5Hasher: (NSString*) query {
NSData* hashed = [query dataUsingEncoding:NSUTF8StringEncoding];
unsigned char *digest = MD5([hashed bytes], [hashed length], NULL);
NSString *final = [NSString stringWithUTF8String: (char *)digest];
return final;
}
我从StackOverflow上类似问题的答案中获取了这段代码,但是当程序在return final;处断开时,GDB会出现以下错误。
(gdb) p digest
$1 = (unsigned char *) 0xa06310e4 "\0206b\260/\336\316^\021\b\a/9\310\225\204"
(gdb) po final
Cannot access memory at address 0x0
(gdb) po digest
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0xb0623630
0x98531ed7 in objc_msgSend ()
The program being debugged was signaled while in a function called from GDB.
GDB has restored the context to what it was before the call.
To change this behavior use "set unwindonsignal off"
Evaluation of the expression containing the function
(_NSPrintForDebugger) will be abandoned.
我无法理解它的意义。