我正在尝试将AES256
字符串从 iPhone 应用程序发送到服务器并返回。
使用以下内容,我可以成功地加密字符串并使用以下代码解密字符串:-
// Encryption Methods
NSString *theStringToDecrypt = @"{\"String\":\"This is a string\"}";
NSData *theEncodedString = [theStringToDecrypt dataUsingEncoding:NSUTF8StringEncoding]; // NSUTF8 Encrypt the string
NSData *encryptedData = [theEncodedString AES256EncryptWithKey:theKey]; // Encrypt to AES-256
NSData *decryptedData = [encryptedData AES256DecryptWithKey:theKey]; // Decrypt from AES-256
NSString *theDecodedString = [[NSString alloc] initWithData:decryptedData encoding:NSUTF8StringEncoding]; // NSUTF8 Decode the string
NSString *theString = [[NSString alloc] initWithData:decryptedData encoding:NSUTF8StringEncoding]; // NSUTF8 Decode the string
NSLog(@"theDecryptedKey=%@ | theEncryptedKey=%@",theString,theDecodedString);
因此,这会抓取一个字符串,转换为NSData
使用UTF
8 编码,然后使用AES256
. 然后它解密NSData
并转换回字符串。
这可以正常工作并成功加密/解密字符串。
我遇到的问题是,我从服务器将数据作为解密字符串返回,因此需要传递一个字符串来AES256DecryptWithKey
简单地解密它,但AES256DecryptWithKe
y 仅适用于NSData
.
这会导致问题,因为我已经有一个加密的字符串,所以转换为数据然后加密AES
包括 UTF8 编码,所以我实际上只是将UTF8
字符串转换回解密的字符串。
我在这里错过了一些简单的东西还是在工作中有更黑暗的力量?