NSDictionary *dict = @{@"cb":@"123",@"abc":@"1234",@"abd":@"134",@"caa":@"134"};
NSMutableString *contentString =[NSMutableString string];
NSArray *keys = [dict allKeys];
//按字母顺序排序
NSArray *sortedArray = [keys sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj1 compare:obj2 options:NSNumericSearch];
}];
//拼接字符串
for (NSString *categoryId in sortedArray) {
if ( ![[dict objectForKey:categoryId] isEqualToString:@""])
{
[contentString appendFormat:@"%@=%@&", categoryId, [dict objectForKey:categoryId]];
}
}
NSString *verifyString = nil;
//去掉 拼接字符的最后 &
if (contentString.length < 1) {
verifyString = [contentString md5HexDigest];
}else {
//md5HexDigest 为NSString的类目中的MD5加密方法
verifyString = [[contentString substringToIndex:contentString.length-1]md5HexDigest];
}
NSLog(@"%@",contentString);
NSLog(@"%@",verifyString);
~~~~~~~~~~~~~~~~~~~~~~~~MD5加密~~~~~~~~~~~~~~~~~~
#import <CommonCrypto/CommonCrypto.h>
-(NSString *)md5HexDigest
{
const char *original_str = [self UTF8String];//转化为c的字符串
unsigned char result[CC_MD5_DIGEST_LENGTH];
unsigned int ad = (int)strlen(original_str);
CC_MD5(original_str,ad, result);
NSMutableString *hash = [NSMutableString string];
for (int i = 0; i < 16; i++)
[hash appendFormat:@"%02X", result[i]];
return [hash lowercaseString];//将加密后的字符串中的字母改为小写(大写uppercaseString)
}