iOS中使用RNCryptor对资源文件加密(先加密后拖进项目中)
概述:IPA 在发布时,业务相关的敏感资源文件以明文的形式存储,由于没有加密保护,这些文件在应用发布后 可能被其他人获取,并结合其他漏洞和手段产生真实攻击。所以我们要 1、在设计、开发阶段,集合业务确定敏感的资源文件;2、合理选择加密算法、密钥,在编译阶段对资源文件进行加密。3、使用一定方式(比如代码混淆)来对业务中的解密代码、密钥进行保护。
RNCryptor源码https://github.com/RNCryptor/RNCryptor
基于RNCryptor ,https://github.com/iHongRen/CXYRNCryptorTool的作者做了一个基于MAC的小工具,用来对资源文件先进行加密。这样就可以达到先对敏感文件进行加密,然后再拖进项目中,实现编译前就对敏感文件进行加密的目的。
由于我在xcode 9上面CXYRNCryptorTool跑不起来,然后我稍微修改了下,放在了https://github.com/yoowei/CXYRNCryptorTool。
下面我详细的记录一下我的使用过程:
1、我首先将项目中的custom.xml利用上面所说的小工具进行加密
2、将加密后的custom.cxy拖进项目中,注意要添加进项目
3、在使用到custom.xml的地方,先对文件进行解密(注意要做下代码混淆,保护解密密码)
NSData *encryptedData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"custom" ofType:@"cxy"]];
NSError *error;
NSData *decryptedData = [RNDecryptor decryptData:encryptedData
withPassword:@"yoowei"
error:&error];
if (!error) {
return decryptedData;
}
4、经过实践证明是可以行的通的。
感谢:http://blog.csdn.net/chenpolu/article/details/46277587
最新文章
- Movies
- Job中织梦标签的调用
- understanding checkpoint_completion_target
- 火狐firefox提示“内容编码错误 无法显示您尝试查看的页面,因为它使用了无效或者不支持的压缩格式。”
- 动态生成图片 保存到OutputStream
- Python学习 之 对内存的使用(浅拷贝和深拷贝)
- 【HDOJ】2065 ";红色病毒";问题
- ThinkPHP的全部配置选项
- django manage.py 的各种功能
- java的(PO,VO,TO,BO,DAO,POJO)包解释
- XtraReports 入门教程
- Vue 进阶之路(九)
- Git 日常操作
- MySQL 8.0.11安装配置
- mouseover,mouseout与mouseenter,mouseleave
- 20165323《Java程序设计》第九周学习总结
- java过滤防止sql注入过滤
- Android——音乐播放器完善——进度条显示当前播放进度,加可拖动进度条(未待解决完问题)
- Java JVM运行时数据区,内存管理和GC垃圾回收
- 《头文字D》热门同人插画欣赏