1、接口参数添加token例子:
NSArray *keyArray = [dic allKeys]; // 将dic中的全部key取出,并放到数组
// 根据ASCII码,将参数key从小到大排序(升序)
NSStringCompareOptions comparisonOptions =NSCaseInsensitiveSearch|NSNumericSearch|NSWidthInsensitiveSearch|NSForcedOrderingSearch;
NSComparator sort = ^(NSString *obj1, NSString *obj2) {
NSRange range = NSMakeRange(0, obj1.length);
return [obj1 compare:obj2 options:comparisonOptions range:range];
};
NSArray *resultArr = [keyArray sortedArrayUsingComparator:sort];
// NSLog(@"字符串数组排序结果%@",resultArr);
NSMutableArray *paramValueArr = [NSMutableArray arrayWithCapacity:resultArr.count];
for (NSString *str in resultArr) {
// 将key对应的value,存到数组
NSString *tokenStr = [dic objectForKey:[NSString stringWithFormat:@"%@", str]];
if (tokenStr.length > 0) {
[paramValueArr addObject:tokenStr];
}
}
// NSLog(@"字符串数组Value排序结果%@",paramValueArr);
NSString *token = [paramValueArr componentsJoinedByString:@"Holle"];
token = [JXUtilTool md5HexDigest:token]; // MD5加密
2、MD5解密:
代码:
+(NSString *)md5HexDigest:(NSString *)input{
const char* str = [input UTF8String];
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5(str, (CC_LONG)strlen(str), result);
NSMutableString *ret = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];
for(int i = 0; i<CC_MD5_DIGEST_LENGTH; i++) {
[ret appendFormat:@"%02x",result[i]];//%02意思是不足两位将用0补齐,如果多于两位则不影响,小写x表示输出小写,大写X表示输出大写
}
return ret;
}
/*** MD5 ***/
#define CC_MD5_DIGEST_LENGTH 16 /* digest length in bytes */
#define CC_MD5_BLOCK_BYTES 64 /* block size in bytes */
#define CC_MD5_BLOCK_LONG (CC_MD5_BLOCK_BYTES / sizeof(CC_LONG))
typedef struct CC_MD5state_st
{
CC_LONG A,B,C,D;
CC_LONG Nl,Nh;
CC_LONG data[CC_MD5_BLOCK_LONG];
int num;
} CC_MD5_CTX;
extern int CC_MD5_Init(CC_MD5_CTX *c)
API_DEPRECATED(CC_DIGEST_DEPRECATION_WARNING, macos(10.4, 10.15), ios(2.0, 13.0));
extern int CC_MD5_Update(CC_MD5_CTX *c, const void *data, CC_LONG len)
API_DEPRECATED(CC_DIGEST_DEPRECATION_WARNING, macos(10.4, 10.15), ios(2.0, 13.0));
extern int CC_MD5_Final(unsigned char *md, CC_MD5_CTX *c)
API_DEPRECATED(CC_DIGEST_DEPRECATION_WARNING, macos(10.4, 10.15), ios(2.0, 13.0));
extern unsigned char *CC_MD5(const void *data, CC_LONG len, unsigned char *md)
API_DEPRECATED(CC_DIGEST_DEPRECATION_WARNING, macos(10.4, 10.15), ios(2.0, 13.0));







网友评论