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

posted @ 2017-10-10 16:34  yoowei  阅读(2956)  评论(0编辑  收藏  举报