iOS中的加密
2018-10-18 本文已影响5人
来自宇宙边际的奥特蛋
项目大部分都是使用md5实现参数加密
一、先创建一个类
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface LucienTool : NSObject
+ (NSString *)md5String:(NSString *)srcString;
@end
#import "LucienTool.h"
#import <CommonCrypto/CommonDigest.h>
static LucienTool *shareTool;
@implementation LucienTool
+(instancetype)shareTool{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
shareTool = [[LucienTool alloc] init];
});
return shareTool;
}
// 32位大写md5
+ (NSString *)md5String:(NSString *)srcString{
//要进行UTF8的转码
const char *input = [srcString UTF8String];
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5(input, (CC_LONG)strlen(input), result);
NSMutableString *digest = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
for (NSInteger i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
[digest appendFormat:@"%02X", result[i]];
}
return digest;
}
注意:
1.和后台约定参数加密顺序,否则后台可能会返回签名错误;
2.参与签名前后台会约定有一个固定的 key。