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 ...
随机推荐
- 译:ORCFILE IN HDP 2:更好的压缩,更高的性能
原文地址: https://hortonworks.com/blog/orcfile-in-hdp-2-better-compression-better-performance/ ORCFILE I ...
- P1841 [JSOI2007]重要的城市
题目描述 参加jsoi冬令营的同学最近发现,由于南航校内修路截断了原来通向计算中心的路,导致去的路程比原先增加了近一公里.而食堂门前施工虽然也截断了原来通向计算中心的路,却没有使路程增加,因为可以找到 ...
- oracle 子查询 where having from ,from子查询提高效率
where 子查询主要功能是控制数据行的,返回结果一般都是单行单列.多行单列.单行多列数据 单行单列 SELECT * FROM emp WHERE hiredate=( SELECT MIN(hir ...
- 【OC底层】AssociatedObject 关联对象
如何实现给分类“添加成员变量”? 默认情况下,因为分类底层结构的限制,不能添加成员变量到分类中.但可以通过关联对象来间接实现 关联对象提供了以下API 1> 添加关联对象 void objc_s ...
- 多线程Java Socket编程示例
package org.merit.test.socket; import java.io.BufferedReader; import java.io.IOException; import jav ...
- springboot之rabbitmq
一.RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件).RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的.所有 ...
- Codeforces 374 C. Travelling Salesman and Special Numbers (dfs、记忆化搜索)
题目链接:Travelling Salesman and Special Numbers 题意: 给了一个n×m的图,图里面有'N','I','M','A'四种字符.问图中能构成NIMA这种序列最大个 ...
- idea 和 WebStorm 配置 http代理 并更换主题
proxy,http,socks5 当前 idea 主题为:(idea 自带) idea 编辑器的主题颜色字体为:(网上下载的 jar 包) 因为今天在安装下面这个主题时需要在 idea的 plugi ...
- 菜鸟vimer成长记——第3章、文件
上一章一直在讲的是vim的文本的操作,本章主要讲的是vim的文件操作. 本章的有些概念和传统的文本编辑器也不尽相同.所以需要注意概念或者切切说是思维习惯的区别. vim 允许在一个编辑会话中编辑多个文 ...
- 使用Sublime Text 3作为React Native的开发IDE
1.下载安装Sublime 3 Sublime 3的下载地址:http://www.sublimetext.com/3 选相应的平台进行下载,安装. 2.安装Package Control 默认的Su ...