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
:3B27CDE22423541E24235DE20-1552423541023541023525252540-155223541023540-15552423540-155223540-1550-1550-15523540-15523540-15523525251010101010101010101010102354 1430:11303] 0

[lisence isEqualToString:decryptResponseString]またはを使用すると、結果が常に「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 に答える