2011-07-14 87 views
1

我在使用Rijndael加密算法進行加密時,它在NSData中加密。我想把加密的NSdata放到NSString中。我試圖將其轉換爲字符串,但它返回零。有任何人有任何解決方案進入字符串。加密數據返回零字符串

我做這樣的

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); 

它返回零值。

由於

回答

1

的加密數據不再是UTF8字符串,這只是一些字節的序列,如UTF8失敗所以對其進行解碼。

你想用字符串做什麼?如果僅用於日誌記錄/調試目的,則可以使用[myData description]來獲取十六進制字符串(爲了更好的可讀性,使用一些額外的空格)。如果您需要在需要文本表示的上下文中傳輸數據,將其轉換爲Base64將是一個不錯的主意,請參閱this answer,以獲得一個簡單的方法。

+0

嗨,感謝您的回覆,加密的字符串是必需的b'coz我必須通過server.If任何其他溶膠。 – iPhoneDev