工作隨筆:瞎記-ios數據簽名

+ (NSString *)getEkeyPath:(NSString *)path parameters:(NSDictionary *)parameters
{
    NSString *s1 = [path sha1];
    NSMutableArray *arr = [NSMutableArray arrayWithArray:[parameters allKeys]];
    for (NSString *key in [parameters allKeys]) {
        id obj = [parameters objectForKey:key];
        if ([obj isKindOfClass:[NSArray class]]) {
            NSArray *objArr = (NSArray *)obj;
            for (NSInteger i = 0;i<objArr.count;i++) {
                [arr addObject:Format4Str(key, @"[", IntToString(i), @"]")];
            }
        }
    }
    NSSortDescriptor *sd1 = [NSSortDescriptor sortDescriptorWithKey:nil ascending:YES];
    NSArray *myary = [arr sortedArrayUsingDescriptors:[NSArray arrayWithObjects:sd1, nil]];
    NSMutableArray *keyMyary = [NSMutableArray array];
    for (NSString *str in myary) {
        [keyMyary addObject:FormatStr(str, [parameters objectForKey:str])];
    }
    NSString *s2 = [[keyMyary componentsJoinedByString:@""] sha1];
    NSString *s3 = [kAppDelegate.keyTime sha1];
    NSString *s4 = [Format3Str(s1, s2, s3) sha1];
    return FormatStr(s4, [path md5]);
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章