概述: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对资源文件加密(先加密后拖进项目中)的更多相关文章

  1. iOS中使用RNCryptor对资源文件加密

    原文:http://blog.csdn.net/chenpolu/article/details/46277587 RNCryptor源码https://github.com/RNCryptor/RN ...

  2. 控件注册 - 利用资源文件将dll、ocx打包进exe文件(C#版)

    原文:控件注册 - 利用资源文件将dll.ocx打包进exe文件(C#版) 很多时候自定义或者引用控件都需要注册才能使用,但是如何使要注册的dll或ocx打包到exe中,使用户下载以后看到的只是一个e ...

  3. 将 Net 项目升级 Core项目经验:(二)修复迁移后Net Standard项目中的错误

    修复迁移后Net Standard项目中的错误 接上一章,项目编译结果如下: 解决依赖dll引用 在Net Framework项目的引用如下: 各引用和作用: log4net(1.10.0.0) 用于 ...

  4. 当向计算机中存入一个float类型的数值2.2 后,在从计算机中读出输出,这时2.2 的值已经发生了变化(转)

    problom : 'f1' value hava been changed when output. reason : the binary repersentation of 2.2f is : ...

  5. WPF中动态添加xaml资源文件

    一.新建一个资源文件,然后设置其Build Actoin(生成操作)为Resource(资源): 二.在App.xaml.cs的StartUp事件或者是你需要的时机代码段写上如下代码: Resourc ...

  6. 总结C语言在嵌入式开发中应用的知识点(文件数据的加密与解密)

    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...

  7. Spring MVC程序中怎么得到静态资源文件css,js,图片文件的路径问题

    问题描述 在用springmvc开发应用程序的时候.对于像我一样的初学者,而且还是自学的人,有一个很头疼的问题.那就是数据都已经查出来了,但是页面的样式仍然十分简陋,加载不了css.js,图片等资源文 ...

  8. 在服务端中,读取properties资源文件中的数据

    1.获取到资源的路径 2.读取数据 //properties文件对象 Properties properties = new Properties(); //通过HttpServletRequest ...

  9. ASP.NET Core中结合枚举和资源文件显示列表

    模型类的某些属性以枚举形式出现,我们希望在打开编辑表单时在选择列表中显示枚举值.有时我们想要枚举元素名称,但有时我们想要使用自定义名称甚至翻译. 这个例子演示了如何获取枚举元素名称以选择ASP.NET ...

随机推荐

  1. Opencv——级联分类器(AdaBoost)

    API说明: cv::CascadeClassifier::detectMultiScale(InputArray image,//输入灰度图像 CV_OUT std::vector<Rect& ...

  2. iOS url出现特殊字符处理 -- stringByAddingPercentEncodingWithAllowedCharacters

    stringByAddingPercentEscapesUsingEncoding(只对 `#%^{}[]|\"<> 加空格共14个字符编码,不包括”&?”等符号), i ...

  3. 目标反射回波检测算法及其FPGA实现 之三:平方、积分电路及算法的顶层实现

    目标反射回波检测算法及其FPGA实现之三: 平方.积分电路及算法的顶层实现 前段时间,接触了一个声呐目标反射回波检测的项目.声呐接收机要实现的核心功能是在含有大量噪声的反射回波中,识别出发射机发出的激 ...

  4. winform 自定义控件:半透明Loading控件

    winform  自定义控件:半透明Loading控件 by wgscd date:2015-05-05 效果: using System;using System.Drawing;using Sys ...

  5. Cenos6.6 升级 python3.5.2 安装配置 django1.10

    1 准备编译环境(环境如果不对的话,可能遇到各种问题,比如wget无法下载https链接的文件) yum groupinstall 'Development Tools' yum install zl ...

  6. Kubernetes学习之路(十二)之Pod控制器--ReplicaSet、Deployment

    一.Pod控制器及其功用 Pod控制器是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试 进行重启,当根据重启策略无效,则会重新新建pod的资源. pod控制器 ...

  7. Gitlab+Jenkins学习之路(十三)之发布Java项目到tomcat

    一.新建一台虚拟机安装tomcat ()安装JDK 官网下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downl ...

  8. Openstack入门篇(十二)之neutron服务(计算节点)的部署与测试

    1.Neutron组件安装 [root@linux-node2 ~]# yum install -y openstack-neutron-linuxbridge ebtables ipset 2.配置 ...

  9. 单元测试时 出现找不到类或者 NoClassDefFoundError 的问题

    这种情况下,启动或重启下服务器即可

  10. 处于同一域中的两台SQL Server 实例无法连接

    处于同一个域中的两台Sql server 实例无法连接,报的错误信息如下: A network-related or instance-specific error occurred while es ...