博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS客户端学习之AES加密
阅读量:5902 次
发布时间:2019-06-19

本文共 1770 字,大约阅读时间需要 5 分钟。

  数据加密在解密在软件开发过程中举足轻重的作用,可能有的公司在加密的时候有自己公司内部一套设计的算法,而在这方面不想浪费太大精力就可以去考虑使用第三方提供的加密算法,如AES加密算法,本篇内容介绍开源中国iOS客户端使用ASE算法加密密码;

AES   GitHub 下载地址  https://github.com/Gurpartap/AESCrypt-ObjC

   对一个比较大的工程我们可能都不知道某个类库或者方法在哪被使用,但是智能的Xcode给我们提供了一个全局搜索的功能,我们可以在真个工程中来搜索这个方法。 比如我不知道AES这个类库用在哪了,但是如果使用这个类库肯定会引用它的头文件,我们搜索AESCrypt

\  
\
 
然后除了类库本身只有Config类里面包含AESCrpt.h,只有两个方法用到了,跳转到Config.m中的两个方法
01.
-(void)saveUserNameAndPwd:(NSString *)userName andPwd:(NSString *)pwd
02.
{
03.
NSUserDefaults * settings = [NSUserDefaults standardUserDefaults];
04.
[settings removeObjectForKey:@"UserName"];
05.
[settings removeObjectForKey:@"Pass<a href="http://www.it165.net/edu/ebg/" target="_blank" class="keylink">word</a>"];
06.
[settings setObject:userName forKey:@"UserName"];
07.
 
08.
pwd = [AESCrypt encrypt:pwd pass<a href="" target="_blank" class="keylink">word</a>:@"pwd"];
09.
 
10.
[settings setObject:pwd forKey:@"Password"];
11.
[settings synchronize];
12.
}

从上面两个方法的方法名知道方法作用,一个是保存用户名和密码,密码使用了AES加密,另一个是解密密码后再返回这个密码;保存用户名和密码是将用户名和密码放到了本地的一个沙盒只之中,获取的时候直接从本地读取加密后的文件,经过解密和服务器上用户数据进行比较(想了解开源中国iOS客户端用户登陆处理过程; www.it165.net

正如官方给出示例用法一样,AES的使用非常简单,首先要添加头文件 #import "AESCrypt.h",使用示例

1.
NSString *pwdKey = @"新风作浪";
2.
NSString *password = @"duxinfeng123456";
3.
NSString *encryptedPWD = [AESCrypt encrypt:password password:pwdKey];
4.
NSString *decryptedPWD = [AESCrypt decrypt:encryptedPWD password:pwdKey];
5.
NSLog(@"加密后密码:%@  解密后密码: %@",encryptedPWD,decryptedPWD);

打印结果 : 加密后密码:/OtTRA5Qz5+xjHB809APLA==  解密后密码: duxinfeng123456

加密 解密方法函数原型,传入的两个参数第一个是加密的数据,第二个是加密数据的key,解密的时候也需要这个key来解密加密后的数据

1.
+ (NSString *)encrypt:(NSString *)message password:(NSString *)password;
2.
+ (NSString *)decrypt:(NSString *)base64EncodedString password:(NSString *)password;
 
 
http://www.it165.net/pro/html/201305/5894.html

转载地址:http://bfkpx.baihongyu.com/

你可能感兴趣的文章
[家里蹲大学数学杂志]第297期丘成桐大学生数学竞赛2014年分析与方程个人赛试题...
查看>>
.NET Socket TCP 50W在线连接交互测试
查看>>
调试SQLSERVER (三)使用Windbg调试SQLSERVER的一些命令
查看>>
杭州果市花市大集合,最好的鲜花和水果在这里哟!
查看>>
PHP很有用的一个函数ignore_user_abort ()
查看>>
.net中的一般处理程序实例
查看>>
Lintcode: Singleton && Summary: Synchronization and OOD
查看>>
C++强制类型转换操作符 const_cast
查看>>
Rectangle Area
查看>>
HDU1069_Monkey and Banana【LCS】
查看>>
ArcEngine下一个TIN生成的轮廓
查看>>
一个共通的viewModel搞定所有的编辑页面-经典ERP录入页面(easyui + knockoutjs + mvc4.0)...
查看>>
http://www.cnblogs.com/xia520pi/archive/2012/05/16/2504205.html
查看>>
微信网页开发那些破事儿
查看>>
转载python2进制打包相关
查看>>
HDFS 原理、架构与特性介绍--转载
查看>>
wireshark常用的过滤命令
查看>>
如何查看linux是32位还是64位
查看>>
mjpg-streamer摄像头远程传输UVC
查看>>
[Android Pro] AES加密
查看>>