iOS 數(shù)據(jù)加密

iOS 常用加密方式算法包括MD5加密、AES加密、BASE64加密

  • MD5加密

MD5:全稱是Message Digest Algorithm 5,譯為“消息摘要算法第5版”
效果:對輸入信息生成唯一的128位散列值(32個(gè)字符)\不可逆的
MD5解密網(wǎng)站

  1. 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
  1. 加鹽(在指定位置插入字符)
-(NSString *)md5AddSalt:(NSString *)str withSalt:(NSString *)salt{
         str = [str stringByAppendingString:salt];
         return [NSString md5HexDigest:str];
}
  1. 多次MD5
-(NSString *)moreMD5:(NSString *)str{
    NSString * md5Str = [NSString md5HexDigest:str];//一次處理
    NSString * md5Str2 = [NSString md5HexDigest:md5Str];//兩次處理
    return md5Str2
}
  1. 先加密, 后亂序
-(NSString *)digest4:(NSString *)str60 {61 NSString *anwen = [str md5String];
// 注冊: 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  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容