Iphone 使用NSData编码/解码+;Base64.h

Iphone 使用NSData编码/解码+;Base64.h,iphone,cocoa-touch,encryption,base64,nsdata,Iphone,Cocoa Touch,Encryption,Base64,Nsdata,我有一些加密数据,我正在转换成base64。我很难将该字符串转换回NSData,然后用于解密 NSData *encryptedData = [self encrypt:_secretData key:[self md5data:_key] padding:&padding]; //I've tried this with different data too NSString *cyphertext = [encryptedData base64EncodingWithLineLeng

我有一些加密数据,我正在转换成base64。我很难将该字符串转换回NSData,然后用于解密

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对象,有什么提示吗?

可能需要使用对应的字符串

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

请注意,转换为base64必须得到4的倍数…

我仍然得到一个NSData值,该值远大于我传递给baseEncodingWithLineLength:的原始编码NSData值。我输入了NSLog语句,NSData对象显然有不同的值。我第一次没有注意到,但是
base64编码与linelength:0
看起来像是一个讨厌的东西…4的倍数是什么意思?对不起,我在这方面真的是新手。这是数学上的,
256/64=4
,查看更多详细信息。你也应该考虑接受我的答案……(大的复选);