Ios: 如何保護iOS束文件屬性列表,圖像,SQLite,媒體文件
Ios: 如何保護iOS束文件屬性列表,圖像,SQLite,媒體文件
我創建了Hello World示例項目,然後添加data.plist文件到資源文件夾。現在人們可以很容易得到束文件解壓縮。國際音標。有任何的方法來保護data.plist文件保存在iPhone應用程序包?
Encryption is a decent method of scrambling the data but i don't know how to implement encription concept.
你有什麼樣的代碼?
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];NSArray *arrData = [[NSArray alloc]initWithContentsOfFile:filePath];
NSData *datas = [NSKeyedArchiver archivedDataWithRootObject:arrData];[datas writeToFile:filePath atomically:YES];
提取後的IPA文件
iosiphonebundleprotection
這個問題有 2 個解答。
第 1 個答案
使用nskeyedarchiver要從你的字典中創建一個NSData對象(nskeyedarchiver archiveddatawithrootobject:)。然後用AES加密NSData寫,你的文件。
閱讀只是相反的過程:首先,閱讀NSData,解密它通過從上述的連接方法,然後通過解密NSData到nskeyedunarchiver(nskeyedunarchiver unarchiveobjectwithdata:)你把你的字典回來。你可以使用NSDictionary plist文件或保持你的數據安全。
實例1:
實例2:
編輯2:
NSDictionary *Your_NSDictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Obj1", @"Key1",@"Obj2", @"Key2", nil];//store dictionaryNSMutableData *yourData = [[NSMutableData alloc] init];NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];[archiver encodeObject:Your_NSDictionary forKey: @"key"];[archiver finishEncoding];[yourData writeToFile:@"FilePath" atomically:YES];
或
NSString* filePath = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];NSDictionary* data = [NSDictionary dictionaryWithContentsOfFile:filePath];NSMutableDictionary * rootObject;rootObject = [NSMutableDictionary dictionary];[rootObject setValue: data forKey:@"accounts"];[NSKeyedArchiver archiveRootObject: rootObject toFile: path];
第 2 個答案
在MAC加密文件…在部署:
第一:要加密的目標不添加文件
例如:Encryption-Test.plist
然後添加一個shell腳本相Xcode項目使用
openssl
加密和複製文件。
例如:
openssl enc -e -aes-256-cbc -pass pass:asdasd-in $PROJECT_DIR/test/Encryption-Test.plist -out $TARGET_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH/Encryption-Test.enc
從GitHub添加到你的項目rncryptor源文件。這使OpenSSL加密AES解密文件很容易。(感謝Rob!)https://github.com/rncryptor/rncryptor(蘋果的ccrypt API不好直接與工作)
載入數據和解密:
例如:
@implementation TestViewController- (void)viewDidLoad{[super viewDidLoad];NSString *path = [[NSBundle mainBundle] pathForResource:@"Encryption-Test" ofType:@"enc"];NSData *passEncryptedData =[[NSData alloc] initWithContentsOfFile:path];NSString *pass = @"asdasd";NSData *dataDecrypted = [RNOpenSSLDecryptor decryptData:passEncryptedData withSettings:kRNCryptorAES256Settings password:pass error:nil];id plist = [NSPropertyListSerialization propertyListFromData:dataDecrypted mutabilityOption:NSPropertyListImmutable format:nil errorDescription:nil];assert(plist);self.text.text = [plist description];}@end
增加了全樣本:https://github.com/daij-djan/encryptbundlefiles
如果本站有幫助到您,請不吝於給一個讚鼓勵!
转载于:https://blog.51cto.com/6951916/1752850
Ios: 如何保護iOS束文件屬性列表,圖像,SQLite,媒體文件相关推荐
- iOS bitCode -- 360 加固保加固 iOS 应用所遇到的问题
前言 今天尝试使用 360 加固助手 在线加固 iOS 应用,上传之后总是提示加固失败,后面查看帮助文档发现需要启用 bitCode ,在此记录本次经历. 相关资料 五款 iOS 加固产品测试与点评 ...
- android和ios传文件怎么打开方式,安卓怎么给iPhone传文件?文件互传教程
大家使用手机的时候肯定都会用到蓝牙或者互传文件功能,安卓和安卓手机直接传文件非常简单方便,那么安卓怎么给iPhone传文件呢?小编下面就给大家带来安卓和iPhone文件互传教程. 说道文件互传,大家肯 ...
- iOS中SSZipArchive解压带中文名称乱码、解压失败、丢失文件的问题
在开发中,使用SSZipArchive这个第三方库,可以很好对文件进行压缩和解压缩,基本的压缩和解压缩很简单,根据相关API实现就可以.现在,我们说一下,使用SSZipArchive解压缩过程中出现的 ...
- ios mysql 修改数据,iOS数据库FMDB--增删改查(模糊查询)实写记录
在iOS中,主要有5种数据缓存的策略: 1.plist 2.归档 3.偏好设置 4.沙盒文件 5."SQLite数据库" 其中,"SQLite数据库" 是最常用 ...
- iOS学习7:iOS沙盒(sandBox)机制(一)之获取沙盒路径及目录说明(转)
转:http://my.oschina.net/joanfen/blog/151145 一.iOS沙盒机制 iOS的应用只能访问为该应用创建的区域,不可访问其他区域,应用的其他非代码文件都存在此目录下 ...
- ios 静态库合成_iOS生成静态库方法-iOS集成静态库-iOS合并静态库
在iOS的开发过程中,我们常常用到第三方的库.尤其是QQ.百度地图.广告等. 那么,如何制作自己的库文件呢? 如果,将自己写的功能类编译成库文件,分发给其他人来使用呢? 静态库的优点 编译静态库的好处 ...
- 疯狂ios讲义之美化iOS应用
如果点击模拟器下方的Home按键或按下command+Shift+H快捷键Retina屏幕的模拟器没有提供Home按键则只能通过快捷键操作模拟器返回应用程序列表此时将可以看到刚刚开发的应用程序但该应用 ...
- windows android ios,TIM for Windows/iOS/Android v2.2.6 正式版发布
TIM近期版本创建待办事项,设置定时提醒,变身时间管理小能手.聊天消息支持右键添加到待办,高效管理重要事项.云文件新增分类导航栏,可按最近浏览.本机文件等分类快速查找文件.在线文档支持会议纪要.日报. ...
- iOS开发UI篇—IOS开发中Xcode的一些使用技巧
iOS开发UI篇-IOS开发中Xcode的一些使用技巧 一.快捷键的使用 经常用到的快捷键如下: 新建 shift + cmd + n 新建项目 cmd + n 新建文 ...
最新文章
- HDU 4857 Couple doubi(找循环节)
- 《Selenium2自动化测试实战基于Python语言》读书笔记
- VC++生成序列号和注册机总结
- 文房四宝用计算机取代的什么,《文房四宝》阅读练习及答案
- 统计建模与r软件_【统计建模与R软件笔记】008 描述统计量(1)
- 博弈论(一):Nim游戏
- 【洛谷P1972】HH的项链(求区间内有多少个不同的数---树状数组)
- fgo升级经验计算机,命运冠位指定狗粮本每日经验表 fgo国服狗粮本刷取技巧攻略[多图]...
- blankcount函数python,统计函数第五讲:计数函数COUNT和COUNTBLANK
- 编程常用英语单词(一)
- C语言数据类型谜题总结
- STUN与TURN技术
- IT十年人生过客2-毕业季
- 创建VMware集群
- 金蝶K3 WISE创新管理平台各个版本补丁情况数据探讨
- 流量决定生意:什么是公域流量、什么是私域流量、什么是商域流量?三者结合,私域聚拢!...
- 都给你总结好了 电路基础知识精粹版
- Datatables实现表格行内编辑功能
- File、FileItem、MultipartFile三种文件类型转换
- 第三章_文件和目录 : 函数utime
热门文章
- Jmeter-基础篇
- python 列表间隔取值_python list数据等间隔抽取并新建list存储的例子
- STL源码剖析 set
- 常用数据结构--线性结构
- 纯做技术是自娱自乐 抛开技术做技术才是出路
- FFMpeg的output_example.c例子分析
- 查看 linux 硬件信息:内存、分区、系统、环境变量、防火墙、路由、端口监听、进程、CPU...
- 错误提示:'……' is not assignable to Android.app.Activity Manifest XML
- 自已开发完美的触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
- 类级别的分装 ---四种访问级别