zoukankan      html  css  js  c++  java
  • AES加密

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

       

    然后除了类库本身只有Config类里面包含AESCrpt.h,只有两个方法用到了,跳转到Config.m中的两个方法

    1. -(void)saveUserNameAndPwd:(NSString *)userName andPwd:(NSString *)pwd  
    2. {  
    3.     NSUserDefaults * settings = [NSUserDefaults standardUserDefaults];  
    4.     [settings removeObjectForKey:@"UserName"];  
    5.     [settings removeObjectForKey:@"Password"];  
    6.     [settings setObject:userName forKey:@"UserName"];  
    7.       
    8.     pwd = [AESCrypt encrypt:pwd password:@"pwd"];  
    9.       
    10.     [settings setObject:pwd forKey:@"Password"];  
    11.     [settings synchronize];  
    12. }  

     

    1. -(NSString *)getPwd  
    2. {  
    3.     NSUserDefaults * settings = [NSUserDefaults standardUserDefaults];  
    4.     NSString * temp = [settings objectForKey:@"Password"];  
    5.     return [AESCrypt decrypt:temp password:@"pwd"];  
    6. }  


    从上面两个方法的方法名知道方法作 用,一个是保存用户名和密码,密码使用了AES加密,另一个是解密密码后再返回这个密码;保存用户名和密码是将用户名和密码放到了本地的一个沙盒只之中, 获取的时候直接从本地读取加密后的文件,经过解密和服务器上用户数据进行比较(想了解开源中国iOS客户端用户登陆处理过程,敬请关注下一篇博客 《开源中国iOS客户端学习——(十二)用户登陆》,即将推出);


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

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


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


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

      1. + (NSString *)encrypt:(NSString *)message password:(NSString *)password;  
      2. + (NSString *)decrypt:(NSString *)base64EncodedString password:(NSString *)password; 
  • 相关阅读:
    三、sersync+rsync实现服务器文件实时同步
    二、Linux实时同步软件之inotify
    一、rsync基础原理
    Samba实战
    DHCP企业实战
    NTP服务器企业实战
    Vsftpd服务器原理及部署
    Python的五大数据类型的作用、定义方式、使用方法,两种交互式方式,格式化输出的三种方式练习。
    pycharm快捷键,变量,字符串,类型的操作方法
    python基础归纳练习 python两种方式,垃圾回收机制,小数整池,数字类型,字符串类型。
  • 原文地址:https://www.cnblogs.com/mawenqiangios/p/5422427.html
Copyright © 2011-2022 走看看