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
iOS中使用RNCryptor对资源文件加密(先加密后拖进项目中)的更多相关文章
- iOS中使用RNCryptor对资源文件加密
原文:http://blog.csdn.net/chenpolu/article/details/46277587 RNCryptor源码https://github.com/RNCryptor/RN ...
- 控件注册 - 利用资源文件将dll、ocx打包进exe文件(C#版)
原文:控件注册 - 利用资源文件将dll.ocx打包进exe文件(C#版) 很多时候自定义或者引用控件都需要注册才能使用,但是如何使要注册的dll或ocx打包到exe中,使用户下载以后看到的只是一个e ...
- 将 Net 项目升级 Core项目经验:(二)修复迁移后Net Standard项目中的错误
修复迁移后Net Standard项目中的错误 接上一章,项目编译结果如下: 解决依赖dll引用 在Net Framework项目的引用如下: 各引用和作用: log4net(1.10.0.0) 用于 ...
- 当向计算机中存入一个float类型的数值2.2 后,在从计算机中读出输出,这时2.2 的值已经发生了变化(转)
problom : 'f1' value hava been changed when output. reason : the binary repersentation of 2.2f is : ...
- WPF中动态添加xaml资源文件
一.新建一个资源文件,然后设置其Build Actoin(生成操作)为Resource(资源): 二.在App.xaml.cs的StartUp事件或者是你需要的时机代码段写上如下代码: Resourc ...
- 总结C语言在嵌入式开发中应用的知识点(文件数据的加密与解密)
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...
- Spring MVC程序中怎么得到静态资源文件css,js,图片文件的路径问题
问题描述 在用springmvc开发应用程序的时候.对于像我一样的初学者,而且还是自学的人,有一个很头疼的问题.那就是数据都已经查出来了,但是页面的样式仍然十分简陋,加载不了css.js,图片等资源文 ...
- 在服务端中,读取properties资源文件中的数据
1.获取到资源的路径 2.读取数据 //properties文件对象 Properties properties = new Properties(); //通过HttpServletRequest ...
- ASP.NET Core中结合枚举和资源文件显示列表
模型类的某些属性以枚举形式出现,我们希望在打开编辑表单时在选择列表中显示枚举值.有时我们想要枚举元素名称,但有时我们想要使用自定义名称甚至翻译. 这个例子演示了如何获取枚举元素名称以选择ASP.NET ...
随机推荐
- MySQL学习之备份
MySQL数据库备份与还原 数据库备份也叫SQL数据备份,备份的结果都是SQL指令. 在MySQL中专门提供了一个用于数据库备份的SQL客户端:mysqldump.exe(MySql document ...
- MySQL 性能测试
MySQL 查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行.最终目标是提交 SELECT 语句查找数据行,而不是排除数据行.优化器试图排除数据 ...
- python科学计算和可视化学习报告
一丶numpy和matplotlib学习笔记 1. NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Numpy内部解除了Pyth ...
- 用C挑战无准备写2048
下午在刷题过程中,忽然想写2048了,以弥补以前写的那个千多行的,所以简单思考了一下准备采取的数据结构就开始了,本以为一个小时能搞定,结果后面改bug还是多花了些时间.因为在医院,所以声音不敢太大,如 ...
- 用NI的数据采集卡实现简单电子测试之5——压控振荡器的测试
本文从本人的163博客搬迁至此. 为了展示连续信号采集的方法,以其外部触发采集功能.我用运算放大器实现了一个最简单的低频压控振荡器(VCO),作为USB-6009采集的信号源.在LabVIEW下编写的 ...
- 深度学习框架caffe在ubuntu下的环境搭建
深度学习实验室服务器系统配置手册 目录: 一,显卡安装 二,U盘启动盘制作 三,系统安装 四,系统的基本配置 五,安装Nvidia驱动 六,安装cuda ...
- Oracle单节点_Grid_Infrastructure_DB_安装过程图解(三/三)
接上文: Oracle单节点_Grid_Infrastructure_DB_安装过程图解(二/三)
- 2597: [Wc2007]剪刀石头布
2597: [Wc2007]剪刀石头布 链接 分析: 费用流. 首先转化一下问题,整张图最优的情况是存在$C_n^3$个,即任意3个都行,然后考虑去掉最少不满足的三元环. 如果u赢了v,u向v连一条边 ...
- [SYZOJ279]滑♂稽♂树
主♂席♂树♂裸♂题 https://syzoj.com/problem/279 https://oj.changjun.com.cn/problem/detail/pid/2425 // It is ...
- 【fake题解】[NOI2013]向量内积
[fake题解][NOI2013]向量内积 做法1 大暴力.哪里不会T哪里. 做法2 所有数都%=k不影响结果.(废话 k的取值只有2和3,所以肯定是要分类讨论的.k=2肯定简单些啦. k=2 出现的 ...