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/jiadabin/9569050

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值