概述: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

最新文章

  1. Movies
  2. Job中织梦标签的调用
  3. understanding checkpoint_completion_target
  4. 火狐firefox提示“内容编码错误 无法显示您尝试查看的页面,因为它使用了无效或者不支持的压缩格式。”
  5. 动态生成图片 保存到OutputStream
  6. Python学习 之 对内存的使用(浅拷贝和深拷贝)
  7. 【HDOJ】2065 "红色病毒"问题
  8. ThinkPHP的全部配置选项
  9. django manage.py 的各种功能
  10. java的(PO,VO,TO,BO,DAO,POJO)包解释
  11. XtraReports 入门教程
  12. Vue 进阶之路(九)
  13. Git 日常操作
  14. MySQL 8.0.11安装配置
  15. mouseover,mouseout与mouseenter,mouseleave
  16. 20165323《Java程序设计》第九周学习总结
  17. java过滤防止sql注入过滤
  18. Android——音乐播放器完善——进度条显示当前播放进度,加可拖动进度条(未待解决完问题)
  19. Java JVM运行时数据区,内存管理和GC垃圾回收
  20. 《头文字D》热门同人插画欣赏

热门文章

  1. 东芝线阵CCD芯片TCD1305DG驱动时序设计
  2. sqoop数据导入命令 (sql---hdfs)
  3. Spring源码分析(十一)bean的加载
  4. 非const引用参数传入不同类型编译不过的理解(拒绝将临时对象绑定为非const的引用的形参是有道理的)
  5. day 84 Vue学习四之过滤器、钩子函数、路由、全家桶等
  6. Golint的简易使用方法
  7. Hexo+Github博客搭建
  8. struts2第三天——值栈
  9. BZOJ4145_The Prices_KEY
  10. 7-[CSS]-css介绍,引入方式