admin管理员组文章数量:1639675
转载请说明出处:http://wwwblogs/gexun/p/3705207.html,谢谢。
这些天一直在做一个知识问答的项目,因为初赛的项目题目比较少,所以题目就写在本地的plist文件里面了,直接读取就可以了。
公司PM担心题目泄露,所以要我们给plist文件加密,这下可把我搞残了,因为我从来没搞过加密,网上查了很多资料,都是简单的字符串加密,没有专门对plist文件加密,后来实在没办法,请教了公司里的大神,最后搞定了。特地在这里把方法告诉跟我一样的ios菜鸟,希望对你有所帮助,若有大牛有更好的办法,希望指出和改进。
我用的是DES加密,不了解的同学可以先看看这2篇文章:
http://bbs.9ria/thread-242572-1-1.html
http://blog.csdn/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/detail/jiadabin/9569050
版权声明:本文标题:IOS-plist文件DES加密 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1729294463a1194553.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论