我正在使用Rijndael加密算法进行加密,它在NSData中加密。我希望加密的NSdata成为NSString。我试图将其转换为字符串,但它返回nil。有任何解决方案可以进入字符串。
我这样做
NSString *passphrase = @"super-secret";
NSStringEncoding myEncoding = NSUTF8StringEncoding;
NSString *alphaPlain = @"This is a encryption test.";
NSData *alphaDataPlain = [alphaPlain dataUsingEncoding:myEncoding];
NSLog(@" SimpleText value : %@",alphaPlain);
NSData *alphaDataCypher = [alphaDataPlain AESEncryptWithPassphrase:passphrase];
NSString *alphaStringCypher = [[NSString alloc] initWithData:alphaDataCypher encoding:myEncoding];
NSLog(@" Encrypted value : %@",alphaStringCypher);
返回nil值。
由于
答案 0 :(得分:1)
加密数据不再是UTF8字符串,只是一些字节序列,因此将其解码为UTF8失败。
你想用字符串做什么?如果它仅用于记录/调试目的,您可以使用[myData description]
来获取十六进制字符串(带有一些额外的空格以提高可读性)。如果您需要在需要文本表示的上下文中传输数据,将其转换为Base64将是一个好主意,请参阅this answer以获得一种简单的方法。