NSString+SHA
使用二次加密法:
第一次使用SHA加密;
第二次使用密钥再次使用SHA加密
/
#import "NSString+SHA.h"
/
#import<Foundation/Foundation.h>
@interface NSString (SHA)
/**
* 对String根据秘钥进行加密
*
* @param string需要加密的文件
*
* @return加密后的文件
*/
+ (NSString *)encryptFromSting:(NSString *)string;
@interface NSString (SHA)
/**
* 对String根据秘钥进行加密
*
* @param string需要加密的文件
*
* @return加密后的文件
*/
+ (NSString *)encryptFromSting:(NSString *)string;
@end
/
#import "NSString+SHA.h"
/
#import"NSString+SHA.h"
#import <CommonCrypto/CommonHMAC.h>
//秘钥
const NSString *basecode = @"ZzRjsoft.cn sunbing";
@implementation NSString (SHA)
+ (NSString *)encryptFromSting:(NSString *)string
{
const char *cstr = [string UTF8String];
const char *baseCS = [basecode UTF8String];
uint8_t digest[CC_SHA1_DIGEST_LENGTH];
CC_SHA1_CTX ctx;
CC_SHA1_Init(&ctx);
CC_SHA1_Update(&ctx, cstr, (CC_LONG)strlen(cstr));
CC_SHA1_Update(&ctx, baseCS, (CC_LONG)strlen(baseCS));
CC_SHA1_Final(digest, &ctx);
NSMutableString* result = [NSMutableStringstringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) {
[result appendFormat:@"%02X", digest[i]];
}
return result;
}
#import <CommonCrypto/CommonHMAC.h>
//秘钥
const NSString *basecode = @"ZzRjsoft.cn sunbing";
@implementation NSString (SHA)
+ (NSString *)encryptFromSting:(NSString *)string
{
const char *cstr = [string UTF8String];
const char *baseCS = [basecode UTF8String];
uint8_t digest[CC_SHA1_DIGEST_LENGTH];
CC_SHA1_CTX ctx;
CC_SHA1_Init(&ctx);
CC_SHA1_Update(&ctx, cstr, (CC_LONG)strlen(cstr));
CC_SHA1_Update(&ctx, baseCS, (CC_LONG)strlen(baseCS));
CC_SHA1_Final(digest, &ctx);
NSMutableString* result = [NSMutableStringstringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) {
[result appendFormat:@"%02X", digest[i]];
}
return result;
}
@end