#import <Foundation/Foundation.h>
@interface UseSha : NSObject
+(UseSha *)getinstance:(NSDictionary*)dic resultStr:(NSString**)strPath;
-(id)init;
@end
#import "UseSha.h"
#import <CommonCrypto/CommonDigest.h>
static UseSha* _instance;
@implementation UseSha
- (id) init{
if (self = [super init]){
_instance = [[UseSha alloc] init];
}
return self;
}
+(UseSha *)getinstance:(NSDictionary *)dic resultStr:(NSString**)strPath
{
NSArray* arr = [dic allKeys];
arr = [arr sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2){
NSComparisonResult result = [obj1 compare:obj2];
return result==NSOrderedDescending;
}];
NSMutableString *str = [NSMutableString new];
for (NSString *key in arr) {
[str appendString:key];
[str appendString:dic[key]];
}
NSLog(@"%@",str);
NSArray *shaArray=@[@"abc",str,@"abc"];
NSString*shaStr=[shaArray componentsJoinedByString:@""];
NSLog(@"shaStr:%@",shaStr);
if (shaStr!=nil) {
// const char *cstr = [shaStr cStringUsingEncoding:NSUTF8StringEncoding];
// NSData *data = [NSData dataWithBytes:cstr length:shaStr.length];//原先有中文的时候错误
NSData *data = [shaStr dataUsingEncoding:NSUTF8StringEncoding];//处理含有中文的成功
uint8_t digest[CC_SHA1_DIGEST_LENGTH];
//uint8_t digest[CC_SHA256_DIGEST_LENGTH];
CC_SHA1(data.bytes, data.length, digest);
NSMutableString* result = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) {
//[result appendFormat:@"%02x", digest[i]];//默认是小写
[result appendFormat:@"%02X", digest[i]];//大写
}
*strPath=result;
NSLog(@"strPath:%@",*strPath);
}
return _instance;
}
//sha1加密方式
+(NSString *)getSha1String:(NSString *)srcString{
NSArray *shaArray=@[@"abc",srcString,@"abc"];
NSString*shaStr=[shaArray componentsJoinedByString:@""];
const char *cstr = [shaStr cStringUsingEncoding:NSUTF8StringEncoding];
NSData *data = [NSData dataWithBytes:cstr length:shaStr.length];
uint8_t digest[CC_SHA1_DIGEST_LENGTH];
CC_SHA1(data.bytes, data.length, digest);
NSMutableString* result = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) {
//[result appendFormat:@"%02x", digest[i]];//默认是小写
[result appendFormat:@"%02X", digest[i]];//大写
}
NSLog(@"result:%@",result);
return result;
}
//- (NSString *) sha1_base64
//{
// const char *cstr =[self cStringUsingEncoding:NSUTF8StringEncoding];
// NSData *data = [NSData dataWithBytes:cstr length:self.length];
//
// uint8_t digest[CC_SHA1_DIGEST_LENGTH];
//
// CC_SHA1(data.bytes, data.length, digest);
//
// NSData * base64 = [[NSData alloc]initWithBytes:digest length:CC_SHA1_DIGEST_LENGTH];
// base64 = [GTMBase64 encodeData:base64];
//
// NSString * output = [[NSString alloc] initWithData:base64 encoding:NSUTF8StringEncoding];
// return output;
//}
@end
if ([SingModelInstance ActivityAreaId].length>0) {
NSDictionary *dic=@{@"method":@"aop.goods.queryGoodsList",@"v":@"1.0",@"format":@"JSON",@"type":@"2",@"appKey":@"002",@"currentPage":mNum,@"rowCountPerPage":@"10",@"memberId":[KuserModel uid],@"goodType":@"2",@"opsCode":[SingModelInstance ActivityAreaId],@"categoryId":[SingModelInstance ActivityAreaId],@"blockType":@"1"};
NSString*resultStr;
[UseSha getinstance:dic resultStr:&resultStr];
if (resultStr!=nil) {
NSDictionary *dic1=@{@"method":@"aop.goods.queryGoodsList",@"appKey":@"002",@"v":@"1.0",@"format":@"JSON",@"type":@"2",@"sign":resultStr,@"currentPage":mNum,@"rowCountPerPage":@"10",@"memberId":[KuserModel uid],@"goodType":@"2",@"opsCode":[SingModelInstance ActivityAreaId],@"categoryId":[SingModelInstance ActivityAreaId],@"blockType":@"1"};
[proLisCon requestProductListWithDic:dic1 withTag:tag];
}
}