AES GitHub 下载地址 https://github.com/Gurpartap/AESCrypt-ObjC
对一个比较大的工程我们可能都不知道某个类库或者方法在哪被使用,但是智能的Xcode给我们提供了一个全局搜索的功能,我们可以在真个工程中来搜索这个方法。 比如我不知道AES这个类库用在哪了,但是如果使用这个类库肯定会引用它的头文件,我们搜索AESCrypt
然后除了类库本身只有Config类里面包含AESCrpt.h,只有两个方法用到了,跳转到Config.m中的两个方法
//一个是保存用户名和密码,密码使用了AES加密.保存用户名和密码是将用户名和密码放到了本地的一个沙盒只之中,获取的时候直接从本地读取加密后的文件,经过解密和服务器上用户数据进行比较。
- -(void)saveUserNameAndPwd:(NSString *)userName andPwd:(NSString *)pwd
- {
- NSUserDefaults * settings = [NSUserDefaults standardUserDefaults];
- [settings removeObjectForKey:@"UserName"];
- [settings removeObjectForKey:@"Password"];
- [settings setObject:userName forKey:@"UserName"];
- pwd = [AESCrypt encrypt:pwd password:@"pwd"];
- [settings setObject:pwd forKey:@"Password"];
- [settings synchronize];
- }
- -(NSString *)getPwd
- {
- NSUserDefaults * settings = [NSUserDefaults standardUserDefaults];
- NSString * temp = [settings objectForKey:@"Password"];
- return [AESCrypt decrypt:temp password:@"pwd"];
- }
从上面两个方法的方法名知道方法作用,一个是保存用户名和密码,密码使用了AES加密,另一个是解密密码后再返回这个密码;保存用户名和密码是将用户名和密码放到了本地的一个沙盒只之中,获取的时候直接从本地读取加密后的文件,经过解密和服务器上用户数据进行比较。
正如官方给出示例用法一样,AES的使用非常简单,首先要添加头文件 #import "AESCrypt.h",使用示例
NSString *pwdKey = @"蒲公英的约定";
NSString *password = @"hello123456";
NSString *encryptedPWD = [AESCrypt encrypt:password password:pwdKey];
NSString *decryptedPWD = [AESCrypt decrypt:encryptedPWD password:pwdKey];
NSLog(@"加密后密码:%@ 解密后密码:%@",encryptedPWD,decryptedPWD);
打印结果 : 加密后密码:RXiYdPHxxUTU1LdHvURLrw== 解密后密码: hello123456
加密 解密方法函数原型,传入的两个参数第一个是加密的数据,第二个是加密数据的key,解密的时候也需要这个key来解密加密后的数据;
- + (NSString *)encrypt:(NSString *)message password:(NSString *)password;
- + (NSString *)decrypt:(NSString *)base64EncodedString password:(NSString *)password;