2011-04-11 148 views
1

我有一些加密的數據,我轉換爲base64。我很難將該字符串轉換回NSData,然後我可以使用它解密。使用NSData + Base64.h編碼/解碼

NSData *encryptedData = [self encrypt:_secretData key:[self md5data:_key] padding:&padding]; 
//I've tried this with different data too 
NSString *cyphertext = [encryptedData base64EncodingWithLineLength:0]; 
//this works fine 
[cyphertext dataUsingEncoding:NSUTF8StringEncoding]; 
//this returns too many bytes ... it's longer than my original data 

我使用Dave Winer標準的「NSData + Base64.h」 - 我在github上找到它。

有關如何將字符串轉換回相同的NSData對象的任何提示?

回答

3

使用其對應的可能?

+ (NSData *) dataWithBase64EncodedString:(NSString *) string 

注意,轉換爲base64必須帶來4的倍數...

+0

我仍然得到一個NSData值比我原來編碼的NSData我傳遞給baseEncodingWithLineLength方式做大:.我把NSLog語句和NSData對象顯然有不同的值。 – Cyrus 2011-04-12 00:40:20

+0

我沒有注意到第一次,但'base64EncodingWithLineLength:0'看起來像一種可憎的...... – 2011-04-12 07:59:39

+0

你是什麼意思的倍數4?對不起,我真的很新。 – Cyrus 2011-04-17 02:21:32