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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM