zoukankan      html  css  js  c++  java
  • IOS-plist文件DES加密

     

     转载请说明出处:http://www.cnblogs.com/gexun/p/3705207.html,谢谢。

    这些天一直在做一个知识问答的项目,因为初赛的项目题目比较少,所以题目就写在本地的plist文件里面了,直接读取就可以了。

    公司PM担心题目泄露,所以要我们给plist文件加密,这下可把我搞残了,因为我从来没搞过加密,网上查了很多资料,都是简单的字符串加密,没有专门对plist文件加密,后来实在没办法,请教了公司里的大神,最后搞定了。特地在这里把方法告诉跟我一样的ios菜鸟,希望对你有所帮助,若有大牛有更好的办法,希望指出和改进。

    我用的是DES加密,不了解的同学可以先看看这2篇文章:

    http://bbs.9ria.com/thread-242572-1-1.html

    http://blog.csdn.net/kylinbl/article/details/8641246

    接着,我们来梳理一下整个plist文件加密流程:

    1.首先在你的工程里导入DES相关的文件

    2.在你要加密的类里面导入DES头文件

    3.写一个加密plist文件的方法,然后再viewDidLoad方法里面调用它,这里注意下plist文件格式要改变下,把你要加密的plist文件去掉.plist,你导入的文件不再是plist格式,打开方式也不是plist格式,而是xml格式。否则会编译不成功。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    //生产加密题库
    - (NSArray *)makeQuestionData;
    {
        NSString *filePath = [[NSBundle mainBundle] pathForResource:@"team"
                                                             ofType:nil];
        if (filePath)
        {
            NSString *str = [NSString stringWithContentsOfURL:[NSURL fileURLWithPath:filePath]
                                                     encoding:NSUTF8StringEncoding
                                                        error:NULL];
            if (str)
            {
                NSString *desStr = [DES encryptString:str];
                 
                if(desStr)
                {
                    [desStr writeToFile:[MHFileTool getLocalFilePath:@"jiamiTeam"]
                             atomically:YES
                               encoding:NSUTF8StringEncoding
                                  error:NULL];
                     
                    NSLog(@"---dest path:%@",[MHFileTool getLocalFilePath:@"jiamiTeam"]);
                     
                }
            }
        }
        return nil;
    }

    4.这样你的工程里就会在本地生成了你旧plist文件的对应的加密的plist文件

          4.1 我们在这方法这边打个断点,然后一步一步往下走,走到我NSLog方法这边:

      

       4.2 这时候控制台会打印出本地生成的加密文件的所在地址:(这里我用了第三方写入本地文件工具类MHFileTool,直接偷懒啦。)

      

      4.3 这时候我们去程序本地的沙盒目录下取出加密的plist文件

     

    5.在原来加密plist文件的方法上写一个解密plist文件,将刚刚生成的加密的plist文件替换原来的旧文件,这样加密工作就完成啦!

     

    6.解密文件方法。直接调用解密方法即可,就不再一一赘述了。

    7.本文代码Demo下载地址:http://download.csdn.net/detail/gary5510/7287315

  • 相关阅读:
    操作系统
    redis
    数据库原理与mysql
    计算机网络
    重写、重载、隐藏以及多态分析
    c++复习重点
    重装系统记录
    正则表达式匹配ip地址
    信号量和互斥锁的区别 互斥量与临界区的区别
    为Markdown文件生成目录
  • 原文地址:https://www.cnblogs.com/ygm900/p/3850073.html
Copyright © 2011-2022 走看看