美文网首页
iOS 加密本地资源

iOS 加密本地资源

作者: 笔头还没烂 | 来源:发表于2020-10-21 15:35 被阅读0次

直接上源码:

#import <Foundation/Foundation.h>
#import "DataEncryption.h"
/*
 思想:
 可以用归档输出需要加密的资源文件,要用资源文件时再进行解档。
 */

NSString * OutputFilePath(NSString *fileName) {
    NSString *outPutPath = [NSString stringWithFormat:@"/Users/#这里替换成你本机的用户名#/Desktop/Resource/%@%@",subPath,fileNam];
    return outPutPath;
}

NSString * InputFilePath(NSString *fileName) {
    //资源文件路径,其实就是那个 Resources 文件夹的路径
    return [NSString stringWithFormat:@"/Users/#这里替换成你本机的用户名#/Documents/ResourceEncryption/ResourceEncryption/Resource/%@", fileName];
}

/**归档二进制文件*/
void EncryptionDataFiles(NSArray *names) {
    [names enumerateObjectsUsingBlock:^(NSString * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        NSData *data = [NSData dataWithContentsOfFile:InputFilePath(obj)];
        [NSKeyedArchiver archiveRootObject:data toFile:OutputFilePath(obj)];
    }];
}

/**归档数组类型的Plist文件*/
void EncryptionArrayPlistFiles(NSArray *names) {
    [names enumerateObjectsUsingBlock:^(NSString * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        //原理同上
        NSArray *array = [NSArray arrayWithContentsOfFile:InputFilePath(obj)];
        [NSKeyedArchiver archiveRootObject:array toFile:OutputFilePath(obj)];
    }];
}

/**归档字典类型的Plist文件*/
void EncryptionDictionaryPlistFiles(NSArray *names) {
    [names enumerateObjectsUsingBlock:^(NSString * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        //原理同上
        NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:InputFilePath(obj)];
        NSString *str = [DataEncryption convertToJsonData:dic];
        NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
        [NSKeyedArchiver archiveRootObject:data toFile:OutputFilePath(obj)];
    }];
}

int main(int argc, const char * argv[]) {
    @autoreleasepool {
       NSArray *names = @[@"aa.plist"];
       EncryptionDataFiles(names);
       EncryptionArrayPlistFiles(names);
       EncryptionDictionaryPlistFiles(names);
    }
    return 0;
}

PS:
解档的话,要保证需要解档的文件路径是完全没问题的,否则解不出来

相关文章

  • iOS 加密本地资源

    直接上源码: PS:解档的话,要保证需要解档的文件路径是完全没问题的,否则解不出来

  • iOS面试题:怎么防止反编译?

    原文:iOS面试题大全 本地数据加密。 iOS应用防反编译加密技术之一:对NSUserDefaults,sqlit...

  • iOS - 程序加固APP安全防护

    常用的加固方式 URL编码加密 对iOS app中出现的URL进行编码加密,防止URL被静态分析 本地数据加密 对...

  • 怎么防止反编译?

    怎么防止反编译?本地数据加密。iOS应用防反编译加密技术之一:对NSUserDefaults,sqlite存储文件...

  • 防护IOS APP安全的几种方式(详解)

    1.URL编码加密对iOS app中出现的URL进行编码加密,防止URL被静态分析2.本地数据加密对NSUserD...

  • Flutter开发-加载本地资源(图片)

    Assests Flutter加载本地资源文件需要将本地资源放入assets中,assets在iOS中就是一个fo...

  • flutter学习笔记(二)

    本地访问-MethodChannel 本地访问是指跨平台的解决方案,有访问本地android或者ios资源的能力,...

  • 防止别人反编译

    面怎么防止别人反编译你的app 1.本地数据加密 iOS应用防反编译加密技术之一:对NSUserDefaults,...

  • iOS开发加密

    iOS开发过程中涉及到的需要加密的有三个部分: 本地数据 网络通讯 源代码 最近有个给本地数据加密的需求,这里记录...

  • 一些书签

    1、iOS中使用RNCryptor对资源文件加密http://blog.csdn.net/chenpolu/art...

网友评论

      本文标题:iOS 加密本地资源

      本文链接:https://www.haomeiwen.com/subject/vgtpmktx.html