最近进行iOS 安全黑匣子的测试,在Demo中通过不断的点击调加密接口,同时通过苹果自带instrument的leak工具监控,发现典型的内存泄漏,监控图如下:
上图中红色的部分表示该操作触发的代码有内存泄漏的可能,于是拿出源代码来研究一番,源代码如下:
//加密接口
-(IBAction)encrypt:(id)sender {
out =nil;
NSString *text = @"1374112539taobao://?ssoType=AuthorizeApplicationPrefix&appkey=1234&appName=SSO Demo&urlSchemes=ssodemo://&t=13741125391374112539";
NSData *inputData = [text dataUsingEncoding:NSUTF8StringEncoding];
out = [[[TBSecretMgr sharedInstance] encrypt:inputData]retain];
NSString *test =[[NSString alloc] initWithData:out encoding:NSUTF8StringEncoding];
NSLog(@"encrypt:%@",test);
[test release];}
//解密接口
- (IBAction)deEncrypt:(id)sender {
NSData *deEncryptOut = [[TBSecretMgr sharedInstance] decrypt:out