objective-c – 如何在Cocoa中创建一个字符串的MD5哈希?

objective-c – 如何在Cocoa中创建一个字符串的MD5哈希?,第1张

概述我知道SHA-1是首选,但这个项目需要我使用MD5。 #include <openssl/md5.h>- (NSString*) MD5Hasher: (NSString*) query { NSData* hashed = [query dataUsingEncoding:NSUTF8StringEncoding]; unsigned char *digest = MD5([ 我知道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的另一个类似的问题的答案,但我得到以下错误从GDB当程序打破返回final;

(gdb) p digest = (unsigned char *) 0xa06310e4 "06b0/66^1\b\a/9054"(gdb) po finalCannot access memory at address 0x0(gdb) po digestProgram received signal EXC_BAD_ACCESS,Could not access memory.Reason: KERN_INVALID_ADDRESS at address: 0xb06236300x98531ed7 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.

我不能有任何意义。

解决方法 这是我使用的类别:

Nsstring MD5.h

@interface Nsstring (MD5)- (Nsstring *)MD5String;@end

Nsstring MD5.m

#import <CommonCrypto/CommonDigest.h>@implementation Nsstring (MD5)- (Nsstring *)MD5String {    const char *cstr = [self UTF8String];    unsigned char result[16];    CC_MD5(cstr,strlen(cstr),result);    return [Nsstring stringWithFormat:        @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",result[0],result[1],result[2],result[3],result[4],result[5],result[6],result[7],result[8],result[9],result[10],result[11],result[12],result[13],result[14],result[15]    ];  }@end

用法

Nsstring *myString = @"test";Nsstring *md5 = [myString MD5String]; // returns Nsstring of the MD5 of test
总结

以上是内存溢出为你收集整理的objective-c – 如何在Cocoa中创建一个字符串的MD5哈希?全部内容,希望文章能够帮你解决objective-c – 如何在Cocoa中创建一个字符串的MD5哈希?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1044556.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存