【发布时间】:2015-09-30 07:14:48
【问题描述】:
我的任务是加密文件(.png、.txt、任何..)
为了实现它,我正在做的是
加密:
- 读取文件并将其存储到 NSData。
- 将 NSData 转换为 NSString。
- 在 AESCrypt 的帮助下加密 NSString
- 将 NSString 存储在文件中
解密
- 读取加密字符串
- 在 AESCrypt 的帮助下解密
- 将其转换回 NSData
- 将其保存回某个位置
下面是我为了将文件转换为 NSString 所做的代码:
NSString* sourceFile = @"/Users/Vikas/Desktop/theHulk.png";
NSData *data = [[NSFileManager defaultManager] contentsAtPat
h:sourceFile];
NSString *dataAsString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
问题:
上面的代码能够读取文件并将其存储到 NSData 但是当我将 NSData 转换为 NSString 时,我得到的值是 nil
研究
S.P:如果您对文件加密有更好的建议,请告诉我,因为我是新手。
【问题讨论】:
-
你能加密数据而不转换成字符串吗?通常,加密适用于字节,而不仅仅是字符串
-
实际上,我使用的库(AESCrypt)能够加密字符串,所以我想如果我想加密一个文件,那么我需要将它转换为 NSString。如果你能告诉我如何加密/解密 NSData @CarlVeazey,那就太好了
-
那么不要使用那个库。直接使用普通加密或它的差异抽象
-
stackoverflow.com/questions/2579453/… 从搜索 encrypt nsdata 中得知,相信您可以进行类似搜索以了解更多信息;)
-
并非所有数据都可以转换为任何特定的字符串编码,尤其是 UTF-8。出于某种原因,如果需要字符串表示,一般的解决方案是使用 Base64 或十六进制编码。
标签: objective-c cocoa