@interface NSString (LuckyMD5)
//- (NSString *)md5String ;
/**
* MD5加密, 32位 小写
*
* @param str 传入要加密的字符串
*
* @return 返回加密后的字符串
*/
+(NSString *)MD5ForLower32Bate:(NSString *)str;
/**
* MD5加密, 32位 大写
*
* @param str 传入要加密的字符串
*
* @return 返回加密后的字符串
*/
+(NSString *)MD5ForUpper32Bate:(NSString *)str;
/**
* MD5加密, 16位 小写
*
* @param str 传入要加密的字符串
*
* @return 返回加密后的字符串
*/
+(NSString *)MD5ForLower16Bate:(NSString *)str;
/**
* MD5加密, 16位 大写
*
* @param str 传入要加密的字符串
*
* @return 返回加密后的字符串
*/
+(NSString *)MD5ForUpper16Bate:(NSString *)str;
@end
#import "NSString+LuckyMD5.h"
#import <CommonCrypto/CommonCrypto.h>
@implementation NSString (LuckyMD5)
//- (NSString *)md5String
//{
// const char *str = self.UTF8String ;
// uint8_t buffer [CC_MD5_DIGEST_LENGTH] ;
//
// CC_MD5(str, (CC_LONG) strlen(str), buffer) ;
//
// return [self stringFromBytes:buffer length: CC_MD5_DIGEST_LENGTH] ;
//}
#pragma mark - 32位 小写
+(NSString *)MD5ForLower32Bate:(NSString *)str{
//要进行UTF8的转码
constchar* input = [str UTF8String];
unsignedchar result[CC_MD5_DIGEST_LENGTH];
CC_MD5(input, (CC_LONG)strlen(input), result);
NSMutableString *digest = [NSMutableStringstringWithCapacity:CC_MD5_DIGEST_LENGTH *2];
for (NSInteger i =0; i < CC_MD5_DIGEST_LENGTH; i++) {
[digest appendFormat:@"%02x", result[i]];
}
return digest;
}
#pragma mark - 32位 大写
+(NSString *)MD5ForUpper32Bate:(NSString *)str{
//要进行UTF8的转码
constchar* input = [str UTF8String];
unsignedchar result[CC_MD5_DIGEST_LENGTH];
CC_MD5(input, (CC_LONG)strlen(input), result);
NSMutableString *digest = [NSMutableStringstringWithCapacity:CC_MD5_DIGEST_LENGTH *2];
for (NSInteger i =0; i < CC_MD5_DIGEST_LENGTH; i++) {
[digest appendFormat:@"%02X", result[i]];
}
return digest;
}
#pragma mark - 16位 大写
+(NSString *)MD5ForUpper16Bate:(NSString *)str{
NSString *md5Str = [selfMD5ForUpper32Bate:str];
NSString *string;
for (int i=0; i<24; i++) {
string=[md5Str substringWithRange:NSMakeRange(8,16)];
}
return string;
}
#pragma mark - 16位 小写
+(NSString *)MD5ForLower16Bate:(NSString *)str{
NSString *md5Str = [selfMD5ForLower32Bate:str];
NSString *string;
for (int i=0; i<24; i++) {
string=[md5Str substringWithRange:NSMakeRange(8,16)];
}
return string;
}
@end
1万+

被折叠的 条评论
为什么被折叠?



