直接上源码:
#import
#import "DataEncryption.h"
/*
思想:
可以用归档输出需要加密的资源文件,要用资源文件时再进行解档。
*/
NSString * OutputFilePath(NSString *fileName) {
NSString *outPutPath = [NSString stringWithFormat:@"/Users/#这里替换成你本机的用户名#/Desktop/Resource/%@%@",subPath,fileNam];
return outPutPath;
}
NSString * InputFilePath(NSString *fileName) {
//资源文件路径,其实就是那个 Resources 文件夹的路径
return [NSString stringWithFormat:@"/Users/#这里替换成你本机的用户名#/Documents/ResourceEncryption/ResourceEncryption/Resource/%@", fileName];
}
/**归档二进制文件*/
void EncryptionDataFiles(NSArray *names) {
[names enumerateObjectsUsingBlock:^(NSString * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSData *data = [NSData dataWithContentsOfFile:InputFilePath(obj)];
[NSKeyedArchiver archiveRootObject:data toFile:OutputFilePath(obj)];
}];
}
/**归档数组类型的Plist文件*/
void EncryptionArrayPlistFiles(NSArray *names) {
[names enumerateObjectsUsingBlock:^(NSString * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
//原理同上
NSArray *array = [NSArray arrayWithContentsOfFile:InputFilePath(obj)];
[NSKeyedArchiver archiveRootObject:array toFile:OutputFilePath(obj)];
}];
}
/**归档字典类型的Plist文件*/
void EncryptionDictionaryPlistFiles(NSArray *names) {
[names enumerateObjectsUsingBlock:^(NSString * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
//原理同上
NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:InputFilePath(obj)];
NSString *str = [DataEncryption convertToJsonData:dic];
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
[NSKeyedArchiver archiveRootObject:data toFile:OutputFilePath(obj)];
}];
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *names = @[@"aa.plist"];
EncryptionDataFiles(names);
EncryptionArrayPlistFiles(names);
EncryptionDictionaryPlistFiles(names);
}
return 0;
}
PS:
解档的话,要保证需要解档的文件路径是完全没问题的,否则解不出来
【信息由网络或者个人提供,如有涉及版权请联系COOY资源网邮箱处理】
© 版权声明
本平台(www.cooy.cn)的一切软件、教程及内容信息仅限用于学习和研究,付费仅为收集整理归类费用;
不得将上述内容用于商业或者非法用途,否则一切后果用户自行承担负责。本平台资源、内容、信息均来自来自用户上传,版权争议及其他问题与本平台无关。
您必须在下载后的24个小时之内从您的电脑或手机中彻底删除上述下载内容,如果您喜欢该程序或内容,请支持正版以获取更好的服务。我们非常重视版权问题,如有侵权请发送邮件至下方邮件(655465@qq.com),敬请谅解!
如发现违法违规内容,请联系下方邮箱举报,我们收到后将会第一时间处理。
THE END
暂无评论内容