我正在尝试从String生成MD5。我成功生成了密钥,但问题是我的密钥与android密钥不同。我使用在线工具生成MD5密钥,其结果与android相同,但与我的密钥不匹配。我使用静态String生成MD5,即
1418212369896Sph!nxRock
android MD5键> d3db2cd07e21b3b55330d6746de32c0d(这与在线工具完全相似)
IOS MD5密钥> 2EC05E18061E51D326BF0BA7889B5413
我用来生成MD5的代码在
之下答案 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
希望这会对你有所帮助