gpt4 book ai didi

ios - 如何保护 iOS bundle 文件,如 plist、图像、sqlite、媒体文件

转载 作者:技术小花猫 更新时间:2023-10-29 10:48:44 25 4
gpt4 key购买 nike

我已经创建了示例 hello world 项目,然后将 Data.plist 文件添加到资源文件夹。现在人们可以通过解压 .ipa 文件轻松获得 bundle 文件。有什么方法可以保护保存在 iPhone 应用程序的应用程序包中的 Data.plist 文件?

 Encryption is a decent method of scrambling the data but i don't know how to implement encription concept.

有没有示例代码?

enter image description here

    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];
NSArray *arrData = [[NSArray alloc]initWithContentsOfFile:filePath];

NSData *datas = [NSKeyedArchiver archivedDataWithRootObject:arrData];
[datas writeToFile:filePath atomically:YES];

解压IPA文件后

enter image description here

最佳答案

  1. 在部署期间加密 mac 上的文件...:

    第一:不要将要加密的文件添加到目标
    例如加密测试.plist

    然后将 shell 脚本阶段添加到您的 xcode 项目以使用 openssl 加密和复制文件。
    例如
    openssl enc -e -aes-256-cbc -pass pass:asdasd
    -in $PROJECT_DIR/test/Encryption-Test.plist
    -out $TARGET_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH/Encryption-Test.enc

  2. 将 github 中的 RNCryptor 源文件添加到您的项目中。这使得 openSSL 加密的 AES 文件的解密变得非常容易。 (谢谢抢!)https://github.com/RNCryptor/RNCryptor(Apple 的 CCrypt api 不能直接使用)

  3. 加载数据并解密:

例如

@implementation TestViewController

- (void)viewDidLoad
{
[super viewDidLoad];

NSString *path = [[NSBundle mainBundle] pathForResource:@"Encryption-Test" ofType:@"enc"];
NSData *passEncryptedData =[[NSData alloc] initWithContentsOfFile:path];
NSString *pass = @"asdasd";

NSData *dataDecrypted = [RNOpenSSLDecryptor decryptData:passEncryptedData withSettings:kRNCryptorAES256Settings password:pass error:nil];
id plist = [NSPropertyListSerialization propertyListFromData:dataDecrypted mutabilityOption:NSPropertyListImmutable format:nil errorDescription:nil];

assert(plist);
self.text.text = [plist description];
}

@end

添加了完整示例:https://github.com/Daij-Djan/encryptBundleFiles

关于ios - 如何保护 iOS bundle 文件,如 plist、图像、sqlite、媒体文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22112810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com