iOS客户端学习之AES加密
2023-09-27 14:24:03 时间
数据加密在解密在软件开发过程中举足轻重的作用,可能有的公司在加密的时候有自己公司内部一套设计的算法,而在这方面不想浪费太大精力就可以去考虑使用第三方提供的加密算法,如AES加密算法,本篇内容介绍开源中国iOS客户端使用ASE算法加密密码;
AES GitHub 下载地址 https://github.com/Gurpartap/AESCrypt-ObjC
对一个比较大的工程我们可能都不知道某个类库或者方法在哪被使用,但是智能的Xcode给我们提供了一个全局搜索的功能,我们可以在真个工程中来搜索这个方法。 比如我不知道AES这个类库用在哪了,但是如果使用这个类库肯定会引用它的头文件,我们搜索AESCrypt
![\](http://www.it165.net/uploadfile/2013/0523/20130523091743429.png)
![\](http://www.it165.net/uploadfile/2013/0523/20130523091716926.png)
然后除了类库本身只有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=
"http://www.it165.net/edu/ebg/"
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
相关文章
- IOS UINavigationController 导航控制器
- 毫无保留开源我写的:IOS Android Ipad 多点触摸通用js 库
- iOS - UIViewController生命周期(storyboard/Xib/纯代码)(下)
- Win10 安装 VMWare中 MAC OS X的安装,VMWare tools的配置与iOS的Helloworld
- PhotoSwipe - 移动开发必备的 iOS 风格相册
- WebRTC系列 -- iOS 音频采集之setParameter参数处理流程
- iOS开发中 关于阿里云服务器的使用与安全策略 韩俊强的博客
- iOS中分段控制器与UIScrollView结合使用
- Charles学习(四)之使用Map local代理本地静态资源以及配置移动端代理在真机上调试iOS和Android客户端
- xcode的ios工程目录结构复习
- iOS 实现脉冲雷达以及动态增减元素 By Swift
- 新浪微博iOS客户端架构与优化之路
- 集成 jpush-react-native 常见问题汇总 (iOS 篇)
- 【IOS】高仿糗事百科客户端(基本实现了除注册,评论之外的功能)