如何在IOS中从String生成md5?

时间:2014-12-10 12:26:13

标签: ios md5

我正在尝试从String生成MD5。我成功生成了密钥,但问题是我的密钥与android密钥不同。我使用在线工具生成MD5密钥,其结果与android相同,但与我的密钥不匹配。我使用静态String生成MD5,即

  

1418212369896Sph!nxRock

android MD5键> d3db2cd07e21b3b55330d6746de32c0d(这与在线工具完全相似)

IOS MD5密钥> 2EC05E18061E51D326BF0BA7889B5413

我用来生成MD5的代码在

之下

https://stackoverflow.com/a/2018626/1921597

1 个答案:

答案 0 :(得分:23)

我使用过这种方法:

<强>的NSString + MD5.h

#import <Foundation/Foundation.h>

@interface NSString (MD5)

- (NSString *)MD5;

@end

<强>的NSString + MD5.m

#import "NSString+MD5.h"
#import <CommonCrypto/CommonDigest.h>

@implementation NSString (MD5)

- (NSString *)MD5 {

    const char * pointer = [self UTF8String];
    unsigned char md5Buffer[CC_MD5_DIGEST_LENGTH];

    CC_MD5(pointer, (CC_LONG)strlen(pointer), md5Buffer);

    NSMutableString *string = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
    for (int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
        [string appendFormat:@"%02x",md5Buffer[i]];

    return string;
}

@end

对于你的字符串: 1418212369896Sph!nxRock

您的在线服务结果为: d3db2cd07e21b3b55330d6746de32c0d

方法返回: d3db2cd07e21b3b55330d6746de32c0d

希望这会对你有所帮助