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