我有以下片段:
uint8_t* cipherBuffer;
size_t cipherBufferSize;
sanityCheck = SecKeyEncrypt(keyRef, kSecPaddingPKCS1, nonce, (size_t)sizeof(nonce)/sizeof(nonce[0]), cipherBuffer, &cipherBuffeSize);
NSString* encryptString = [[[NSString alloc] initWithBytes:cipherBuffer length:cipherBufferSize encoding:NSUTF8StringEncoding] autoRelease];
在这里,我总是得到
nil
的encryptString
。有什么建议我做错了吗?
最佳答案
您假定获得的结果是有效的UTF-8格式。那是极不可能的。 NSString *用于文本。加密的数据是纯数据,而不是文本。要将加密的数据放入Objective-C对象,您可能要使用NSData。
关于ios - iOS NSString initwithbytes返回null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22708541/