Recently the project encountered parameter conversion MD5 splicing URL, directly on the code

#import <Foundation/Foundation.h>NS_ASSUME_NONNULL_BEGIN @interface DNMD5Secret : NSObject MD5 encryption /** since MD5 encryption is irreversible, it is used for authentication */ /** 32-bit lowercase */ + (NSString *)ym_MD5ForLower32Bate:(NSString *)strObj; /** 32-bit uppercase */ + (NSString *)ym_MD5ForUpper32Bate:(NSString *)strObj; /** 16 is uppercase */ + (NSString *)ym_MD5ForUpper16Bate:(NSString *)strObj; /** 16-bit lowercase */ + (NSString *)ym_MD5ForLower16Bate:(NSString *)strObj; @end NS_ASSUME_NONNULL_ENDCopy the code


#import "DNMD5Secret.h"
#import <CommonCrypto/CommonDigest.h>@implementation DNMD5Secret /** 32-bit lowercase */ + (NSString *)ym_MD5ForLower32Bate:(NSString *)strObj {// UTF8 transcoding const char* input = [strObj 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]];    
    }
    returndigest; } /** 32-bit uppercase */ + (NSString *)ym_MD5ForUpper32Bate:(NSString *)strObj {// to UTF8 transcoding const char* input = [strObj 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]];
    }
    returndigest; } /** 16 is uppercase */ + (NSString *)ym_MD5ForUpper16Bate:(NSString *)strObj {NSString *md5Str = [self ym_MD5ForUpper32Bate:strObj]; NSString *string;for (int i=0; i<24; i++) {
           string=[md5Str substringWithRange:NSMakeRange(8, 16)];
       }
       returnstring; } /** 16-bit lowercase */ + (NSString *)ym_MD5ForLower16Bate:(NSString *)strObj {NSString *md5Str = [self ym_MD5ForLower32Bate:strObj]; NSString *string;for (int i=0; i<24; i++) {
        string=[md5Str substringWithRange:NSMakeRange(8, 16)];
    }
    return string;
}
Copy the code