以下是代码:
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]解密:3b27cde24235d08a5de5904a4
2012-12-16 15:52:30.250 TextLabelButton [1430:11303] 0
我不知道为什么当我使用[lisence isEqualToString:decryptResponseString]
或(lisence == decryptResponseString)
时结果始终为“0”。
答案 0 :(得分:1)
我会检查字符串长度是否相同。
如果不是,如果两端都有空格,那么这就是你的字符串生成函数。
如果你想摆脱前导和尾随字符串,请使用NSString的方法,例如
NSString *trimmedString = [strimToTrim stringByTrimmingCharactersInSet:[NSCharacterSet whiteSpaceCharacterSet]];
您可以阅读文档here
答案 1 :(得分:0)
摆脱空间的解决方法:
id trimmedDecrypt = [decrypt stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
BOOL r = [license isEqualToString:trimmedDecrypt];