ios安全性---AES加密

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

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

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

  

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

[cpp] view plaincopyprint?

  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. pwd = [AESCrypt encrypt:pwd password:@"pwd"];
  8. [settings setObject:pwd forKey:@"Password"];
  9. [settings synchronize];
  10. }
-(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];
}

[cpp] view plaincopyprint?

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

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

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

[cpp] view plaincopyprint?

  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);
    NSString *pwdKey = @"新风作浪";
    NSString *password = @"duxinfeng123456";

    NSString *encryptedPWD = [AESCrypt encrypt:password password:pwdKey];
    NSString *decryptedPWD = [AESCrypt decrypt:encryptedPWD password:pwdKey];

    NSLog(@"加密后密码:%@  解密后密码: %@",encryptedPWD,decryptedPWD);

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

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

[cpp] view plaincopyprint?

  1. + (NSString *)encrypt:(NSString *)message password:(NSString *)password;
  2. + (NSString *)decrypt:(NSString *)base64EncodedString password:(NSString *)password;

转载注明出处:http://blog.csdn.net/duxinfeng2010

时间: 2024-12-16 03:02:21

ios安全性---AES加密的相关文章

iOS之AES加密解密

//AES加密解密#import <CommonCrypto/CommonCrypto.h>#import <CommonCrypto/CommonDigest.h> //AES128位加密 base64编码 注:kCCKeySizeAES128点进去可以更换256位加密 -(NSString *)AES128Encrypt:(NSString *)plainText key:(NSString *)key { char keyPtr[kCCKeySizeAES128+1];//

iOS开发——AES加密(128 CBC/ECB NoPadding/PKCS7Padding)

项目开发过程中,经常会使用各种加密手段来保证数据的安全性,常见的有MD5,DES,AES等等.摘取百度百科AES词条的简介:AES即高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用.经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在20

AES加密在IOS中的使用

现在做的App,因为考虑到安全性,所以用到了AES加密,以及配对安卓使用的AES加密. .h文件 #import <Foundation/Foundation.h> #import <CommonCrypto/CommonCryptor.h> #import <CommonCrypto/CommonKeyDerivation.h> #define AES_KEY @"[email protected]!*&y.)x#[;>" #defi

iOS 开发笔记-andriod/java/iOS三方AES通用加密

移动端越来越火了,我们在开发过程中,总会碰到要和移动端打交道的场景.为了让数据交互更安全,我们需要对数据进行加密传输.今天研究了一下,就几种语言的加密都实践了一遍,实现了.NET,java(andriod),iOS都同一套的加密算法,下面就分享给大家. AES加密有多种算法模式,下面提供两套模式的可用源码. 加密方式: 先将文本AES加密 返回Base64转码 解密方式: 将数据进行Base64解码 进行AES解密 一.CBC(Cipher Block Chaining,加密块链)模式 是一种循

IOS AES加密

AES GitHub 下载地址:https://github.com/Gurpartap/AESCrypt-ObjC AES支持密钥128位,192位,256位(常用的是128位 md5, 256位 sha256) 工作模式:ECB/CBC,默认情况下iOS是CBC的 iOS在设置加密参数的时候要添加参数 kCCOptionECBMode 填充方式:kCCOptionPKCS7Padding,iOS似乎只支持这样的填充方式,所以要引用第三方包bouncycastle (www.bouncycas

AES加密CBC模式 IOS - Java 互通共用

AES加密模式和填充方式 算法/模式/填充                16字节加密后数据长度        不满16字节加密后长度AES/CBC/NoPadding             16                          不支持AES/CBC/PKCS5Padding          32                          16AES/CBC/ISO10126Padding       32                          16AE

iOS客户端学习之AES加密

数据加密在解密在软件开发过程中举足轻重的作用,可能有的公司在加密的时候有自己公司内部一套设计的算法,而在这方面不想浪费太大精力就可以去考虑使用第三方提供的加密算法,如AES加密算法,本篇内容介绍开源中国iOS客户端使用ASE算法加密密码: AES   GitHub 下载地址  https://github.com/Gurpartap/AESCrypt-ObjC 对一个比较大的工程我们可能都不知道某个类库或者方法在哪被使用,但是智能的Xcode给我们提供了一个全局搜索的功能,我们可以在真个工程中来

iOS经常使用加密方式(MD5,AES,BASE64)与网络数据安全

演示样例项目下载地址  https://github.com/cerastes/Encryption 1MD5 创建MD5类 #import <Foundation/Foundation.h> @interface CJMD5 : NSObject +(NSString *)md5HexDigest:(NSString *)input; @end #import "CJMD5.h" #import <CommonCrypto/CommonDigest.h> @i

iOS客户端学习 AES加密和解密

数据加密在解密在软件开发过程中举足轻重的作用,可能有的公司在加密的时候有自己公司内部一套设计的算法,而在这方面不想浪费太大精力就可以去考虑使用第三方提供的加密算法,如AES加密算法,本篇内容介绍开源中国iOS客户端使用ASE算法加密密码: AES   GitHub 下载地址  https://github.com/Gurpartap/AESCrypt-ObjC 对一个比较大的工程我们可能都不知道某个类库或者方法在哪被使用,但是智能的Xcode给我们提供了一个全局搜索的功能,我们可以在真个工程中来