iOS 常用加密方式算法包括MD5加密、AES加密掉丽、BASE64加密
- MD5加密
MD5:全稱是Message Digest Algorithm 5影斑,譯為“消息摘要算法第5版”
效果:對(duì)輸入信息生成唯一的128位散列值(32個(gè)字符)\不可逆的
MD5解密網(wǎng)站
- MD5加密
MD5 iOS代碼加密
創(chuàng)建MD5類,代碼如下
#import <Foundation/Foundation.h>
@interface CJMD5 : NSObject
+(NSString *)md5HexDigest:(NSString *)input;
@end
2
#import "CJMD5.h"
#import <CommonCrypto/CommonDigest.h>
@implementation CJMD5
+(NSString *)md5HexDigest:(NSString *)input{
const char* str = [input UTF8String];
unsigned char result[CC_MD5_DIGEST_LENGTH];
CC_MD5(str, strlen(str), result);
NSMutableString *ret = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];
for(int i = 0; i<CC_MD5_DIGEST_LENGTH; i++) {
[ret appendFormat:@"%02X",result];
}
return ret;
}
@end
- 加鹽(在指定位置插入字符)
-(NSString *)md5AddSalt:(NSString *)str withSalt:(NSString *)salt{
str = [str stringByAppendingString:salt];
return [NSString md5HexDigest:str];
}
- 多次MD5
-(NSString *)moreMD5:(NSString *)str{
NSString * md5Str = [NSString md5HexDigest:str];//一次處理
NSString * md5Str2 = [NSString md5HexDigest:md5Str];//兩次處理
return md5Str2
}
- 先加密, 后亂序
-(NSString *)digest4:(NSString *)str60 {61 NSString *anwen = [str md5String];
// 注冊(cè): 123 ---- 2CB962AC59075B964B07152D234B702064
// 登錄: 123 --- 202CB962AC59075B964B07152D234B7066 67 NSString *header = [anwen substringToIndex:2];
NSString *footer = [anwen substringFromIndex:2];
anwen = [footer stringByAppendingString:header];
NSLog(@"%@ - %@", str, anwen);
return anwen;73 }
-
AES加密
博客原文 -
BASE64加密
為NSString新建一個(gè)分類
#import <Foundation/Foundation.h>
@interface NSString (Base64)
//編碼
-(NSString *)Base64Encoded;
+(NSString *)Base64StringWithStr:(NSString *)aSourceStr;
//解碼
-(NSString *)base64Decoded;
+(NSString *)StringFromBase64Str:(NSString *)aSourceStr;
@end
.m文件:
#import "NSString+Base64.h"
@implementation NSString (Base64)
-(NSString *)Base64Encoded
{
return [NSString Base64StringWithStr:self];
}
+(NSString *)Base64StringWithStr:(NSString *)aSourceStr
{
NSData * data = [aSourceStr dataUsingEncoding:NSUTF8StringEncoding];
return [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
}
-(NSString *)base64Decoded
{
return [NSString StringFromBase64Str:self];
}
+(NSString *)StringFromBase64Str:(NSString *)aSourceStr
{
NSData *nsdataFromBase64String = [[NSData alloc]
initWithBase64EncodedString:aSourceStr options:NSDataBase64DecodingIgnoreUnknownCharacters];
NSString *base64Decoded = [[NSString alloc]
initWithData:nsdataFromBase64String encoding:NSUTF8StringEncoding];
return base64Decoded;
}
@end