0

这是代码:

NSString *decryptResponseString = [AESCrypt decrypt128:responseString key:@"a16byteslongkey!"];        
NSString *lisence = [NSString createLisence:self.serial withSalt:sha_salt];
NSLog(@"lisence: %@", lisence);
NSLog(@"decrypt: %@", decryptResponseString);
int a = [lisence isEqualToString:decryptResponseString]?1:0;
NSLog(@"%i", a);

这是日志:

2012-12-16 15:52:30.249 TextLabelButton[1430:11303] lisence: 3b27cde24235d08a5de5904a4
2012-12-16 15:52:30.250 TextLabelButton[1430:11303] decrypt: 3b27cde24235d08a5de5904a4
2012-12-16 15:52:30.250 TextLabelButton[ 1430:11303] 0

我不知道为什么当我使用[lisence isEqualToString:decryptResponseString]or时结果总是“0” (lisence == decryptResponseString)

4

2 回答 2

1

我会检查字符串长度是否相同。

如果不是,如果两端都有空格,那么这取决于您的字符串生成函数。

如果你想摆脱前导和尾随字符串,请使用 NSString 的方法,例如

NSString *trimmedString = [strimToTrim stringByTrimmingCharactersInSet:[NSCharacterSet whiteSpaceCharacterSet]];

你可以在这里阅读它的文档

于 2012-12-16T16:25:13.423 回答
0

摆脱空格的解决方法:

id trimmedDecrypt = [decrypt stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 
BOOL r = [license isEqualToString:trimmedDecrypt];
于 2012-12-16T17:19:57.360 回答