美文网首页
iOS开发加密-iOS常用加密方法三种

iOS开发加密-iOS常用加密方法三种

作者: 丶墨墨丶 | 来源:发表于2016-11-28 09:10 被阅读330次

看到网上有常用加密方法的总结,就转存了一下,应该对我们以后有帮助

常用的是MD5加密,这是一种单向加密,实现如下:

需要添加的类库:#import#import#import#include

MD5实现方法(16位):

+ (NSString *)md5:(NSString *)str

{

constchar *concat_str = [strUTF8String];

unsignedchar result[CC_MD5_DIGEST_LENGTH];

CC_MD5(concat_str, (unsignedint)strlen(concat_str), result);

NSMutableString *hash = [NSMutableStringstring];

for (int i =0; i <16; i++){

[hashappendFormat:@"%02X", result[i]];

}

return [hashuppercaseString];

}

还有就是base64的加密,这个加密在别的资源网站或是技术贴里面的描述的都一样,我们都需要去下载

提供使用的相关类,GTMBase64.zip库文件包,并解压,获得GTMBase64.h,GTMBase64.m和

GTMDefines.h三个文件。

下载地址是:https://github.com/r258833095/GTMBase64

新建一个base64的类,在base64.h中天假四个函数:

+ (NSString*)encodeBase64String:(NSString*)input;

+ (NSString*)decodeBase64String:(NSString*)input;

+ (NSString*)encodeBase64Data:(NSData*)data;

+ (NSString*)decodeBase64Data:(NSData*)data;

在base64.m文件中,实现上面4个函数:

+ (NSString*)encodeBase64String:(NSString* )input {

NSData*data = [inputdataUsingEncoding:NSUTF8StringEncodingallowLossyConversion:YES];

data = [GTMBase64encodeData:data];

NSString*base64String = [[NSStringalloc]initWithData:dataencoding:NSUTF8StringEncoding] ;

returnbase64String;

}

+ (NSString*)decodeBase64String:(NSString* )input {

NSData*data = [inputdataUsingEncoding:NSUTF8StringEncodingallowLossyConversion:YES];

data = [GTMBase64decodeData:data];

NSString*base64String = [[NSStringalloc]initWithData:dataencoding:NSUTF8StringEncoding] ;

returnbase64String

}

+ (NSString*)encodeBase64Data:(NSData*)data {

data = [GTMBase64encodeData:data];

NSString*base64String = [[NSStringalloc]initWithData:dataencoding:NSUTF8StringEncoding] ;

returnbase64String;

}

+ (NSString*)decodeBase64Data:(NSData*)data {

data = [GTMBase64decodeData:data];

NSString*base64String = [[NSStringalloc]initWithData:dataencoding:NSUTF8StringEncoding] ;

returnbase64String;

}

直接调用+ (NSString*)encodeBase64String:(NSString* )input和

+ (NSString*)decodeBase64String:(NSString* )input就可以进行加解密。

常用的AES加密,详解:

h文件内容:

#import

@class NSString;

@interface NSData (Encryption)

- (NSData *)AESOverCycle:(NSString *)key; //加密

- (NSData *)AESRelaes:(NSString *)key; //解密

@end

m文件内容:

加密:

@implementation NSData (Encryption)

- (NSData *)AESOverCycle:(NSString *)key {

char keyPtr[kCCKeySizeAES256+1];

bzero(keyPtr, sizeof(keyPtr));

[key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];

NSUInteger dataLength = [self length];

size_t bufferSize = dataLength + kCCBlockSizeAES128;

void *buffer = malloc(bufferSize);

size_t numBytesEncrypted = 0;

CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmAES128,

kCCOptionPKCS7Padding | kCCOptionECBMode,

keyPtr, kCCBlockSizeAES128,

NULL,

[self bytes], dataLength,

buffer, bufferSize,

&numBytesEncrypted);

if (cryptStatus == kCCSuccess) {

return [NSData dataWithBytesNoCopy:buffer length:numBytesEncrypted];

}

free(buffer);

return nil;

}

解密:

- (NSData *)AESRelaes:(NSString *)key {

char keyPtr[kCCKeySizeAES256+1];

bzero(keyPtr, sizeof(keyPtr));

[key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];

NSUInteger dataLength = [self length];

size_t bufferSize = dataLength + kCCBlockSizeAES128;

void *buffer = malloc(bufferSize);

size_t numBytesDecrypted = 0;

CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt, kCCAlgorithmAES128,

kCCOptionPKCS7Padding | kCCOptionECBMode,

keyPtr, kCCBlockSizeAES128,

NULL,

[self bytes], dataLength,

buffer, bufferSize,

&numBytesDecrypted);

if (cryptStatus == kCCSuccess) {

return [NSData dataWithBytesNoCopy:buffer length:numBytesDecrypted];

}

free(buffer);

return nil;

}

@end

相关文章

  • iOS几种加密方式

    iOS 几种加密方法2017-06-19 [iOS开发] iOS常见的几种加密方法 普通加密方法是讲密码进行加密后...

  • iOS代码加密常用加密方式

    iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密、AES加密、BASE64加密,三大...

  • iOS常用加密方式

    iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密、AES加密、BASE64加密,三大...

  • iOS开发加密-iOS常用加密方法三种

    看到网上有常用加密方法的总结,就转存了一下,应该对我们以后有帮助 常用的是MD5加密,这是一种单向加密,实现如下:...

  • iOS-15 加密

    1iOS 常用加密方式讲解 - 简书 2iOS加密方式(RSA签名、加密、AES) - 简书

  • 面试题总结

    1. iOS开发中的加密方式 iOS加密相关算法框架:CommonCrypto。 对称加密: DES、3DES、A...

  • iOS 关于加密

    常见的iOS代码加密常用加密方式包括Base64加密、MD5加密、AES加密、RSA加密等。 Base64加密 B...

  • iOS 加密算法 CommonCrypto框架①【待补充】

    iOS 加密算法 iOS CommonCrypto框架① iOS 加密算法 iOS CommonCrypto框架②...

  • iOS NFC 加密功能实现

    ios NFC加密功能实现 前言:记录一下ios开发中NFC添加密码功能,卡类型为(NFCMiFareTag --...

  • iOS 数据加密

    iOS 常用加密方式算法包括MD5加密、AES加密、BASE64加密 MD5加密 MD5:全称是Message D...

网友评论

      本文标题:iOS开发加密-iOS常用加密方法三种

      本文链接:https://www.haomeiwen.com/subject/qodtlttx.html