转载请说明出处: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

IOS-plist文件DES加密的更多相关文章

  1. iOS Plist 文件的 增 删 改

    一:Plist 文件的创建 Plist 文件作为我们IOS开发的一种数据存储文件,还是经常会用到的.在看<X-code江湖录>的时候,看到了这一点.自己就写了一下,把写的东西分享出来!先看 ...

  2. iOS plist文件的读写

    原帖:http://blog.csdn.net/totogo2010/article/details/7634185 在做iOS开发时,经常用到到plist文件,  那plist文件是什么呢? 它全名 ...

  3. iOS,plist文件、pct文件,工程设置

    1.使用pch文件 2.在info.plist中配置URL Schemes 3.plist配置拍照界面,复制,粘贴等菜单的显示语言 显示中文 4.使用非ARC库/ARC库 5.链接选项-Objc &a ...

  4. iOS Plist文件,增删改查

    今天早上,9点开始弄Plist,然后一直写,一直写(中午取出40分钟吃饭时间),写到1点,写完了,交给头,头说,不是这个意思.我是每个用户创建了一个文件夹,在这个用户的文件夹里面,分别根据应用创建了文 ...

  5. IOS plist文件

    转自:http://www.cnblogs.com/geraldzhang/archive/2011/08/24/2152121.html 在Mac OS X 的Cocoa ,NeXTSTEP 和GN ...

  6. des 加密 iOS

    转载请注明原文出处 生成同名的Des.h文件和Des.m文件后,拷贝下方的代码可直接使用.注意在Des.m文件中将key值修改为项目所需的key.--->  #define DesKey 过程很 ...

  7. iOS DES 加密转base64

      //用法 加密转base 64 NSString *str = [self base64StringFromText:@"qingjoin" withKey:@"ke ...

  8. (iOS)Base64加密和DES加密、以及JAVA和iOS中DES加密统一性问题

    我们在项目中为了安全方面的考虑,通常情况下会选择一种加密方式对需要安全性的文本进行加密,而Base64加密和DES64加密是常用的加密算法.我记得我在前一个项目中使用的就是这两种加密算法的结合:Bas ...

  9. iOS 开发之路(AES/DES加密实现) 三

    最近接触的这个项目由于以前服务器上用的是DES/CBC/PKCS5Padding加密方式,为了让在iOS上的加密结果与服务器端保持一致,我做了很多尝试,现在分享给大家.PS:现在不推荐用DES了,只是 ...

随机推荐

  1. React-Native 之 ScrollView介绍和使用

    前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会有所 ...

  2. robotium 中通过id获取 View 以及进行相应的操作

    robotium 中id的几种表现形式 1)字符串形式:例如id/btn_example,源码中的布局里些的hierachy 中看见的都是这种. 2)数字形式:例如0x7f0700D,打开R.java ...

  3. 【Android开发】之Fragment重要函数讲解

    上一节我们讲到了Fragment的生命周期(都是基于android.support.v4.app包下的Fragment),学习之后相信大家对它的生命周期有了很深入的了解了,如果还有不懂得,可以再看一下 ...

  4. K8S Dashborad登陆认证文档

    K8S Dashboard是官方的一个基于WEB的用户界面,专门用来管理K8S集群,并可展示集群的状态.因为我们使用kubeadm搭建的集群会默认开启RABC(角色访问控制机制),所以我们必须要进行额 ...

  5. Linux系统运维笔记(二),Linux文件编辑命令

    Linux系统运维笔记 Linux文件编辑命令 首先我们使用命令 vi filename 打开一个文件,这个时候进入到的是命令模式 接下来我们按i,然后键盘随便输入写内容. 然后按ESC重新进入到命令 ...

  6. vue-simple-uploader上传插件

    基于vue-simple-uploader封装文件分片上传.秒传及断点续传的全局上传插件 https://www.cnblogs.com/xiahj/p/vue-simple-uploader.htm ...

  7. Educational Codeforces Round 41 (Rated for Div. 2)

    这场没打又亏疯了!!! A - Tetris : 类似俄罗斯方块,模拟一下就好啦. #include<bits/stdc++.h> #define fi first #define se ...

  8. MongoDB 安全配置

    前言 随着MongoDB使用人群企业越来越广泛,黑客的注意力也转移到了其中.比如去年很火热的MongoDB劫持事件,很多人对MongoDB的安全也越来越重视.今天,我们就简单总结一些MongoDB的安 ...

  9. kebab HDU2883

    题意:现在有n个人要烤肉,有m个烤肉架,然后给出每个人的烤肉开始时间si,结束时间ei,以及要烤肉的串数num,还有拷一串的时间ti,然后问你能不能满足所有人的要求. 为3572的进阶题 每个人为一个 ...

  10. WebView图片点击查看

    需求:WebView中的图片点击后放大全屏查看 this.setWebViewClient(new WebViewClient() { @Override public boolean shouldO ...