IOS常見的加密方法,常用的MD5和Base64

MD5 iOS代碼加密:

 1.
MD5 iOS代碼加密
創建MD5類,代碼如下:


#import <Foundation/Foundation.h>

#import <CommonCrypto/CommonDigest.h>


@interface MD5String : NSObject

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

@end


 2.
#import "MD5String.h"

@implementation MD5String

+(NSString *)MD5:(NSString *)input
{
    const char *cStr = [input UTF8String];
    unsigned char digest[CC_MD5_DIGEST_LENGTH];
    CC_MD5( cStr, strlen(cStr), digest ); // This is the md5 call
    
    NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH];
    
    for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
    {
        [output appendFormat:@"%02x", digest[i]];
    }
    
    return  output;
}

@end


  3.MD5是不可逆的只有加密沒有解密,iOS代碼加密使用方式如下
:



   NSMutableString *string1 = [[NSMutableString alloc] initWithString:_pswTextF.text];
    NSString *pwdMD5 = [MD5String MD5:string1];
    NSString *newPwd = [pwdMD5 stringByReplacingOccurrencesOfString:@"d" withString:@“h”];//將加密的密碼再次替換可以增加數據安全程度

AES加密iOS代碼加密:


    
AES加密ios代碼加密使用方法
//  AES加密
    


NSString *encryptedData = [AESCrypt encrypt:userName password:password];//加密
   

 NSString *message = [AESCrypt decrypt:encryptedData password:password]; //解密
  

  NSLog(@"加密結果 = %@",encryptedData);
   

 NSLog(@"解密結果 = %@",message);



END



BASE64加密iOS代碼加密:


    1.BASE64加密iOS代碼加密添加如下方法
:

.h


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


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


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


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



   

 2. .m文件
:


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


  NSData *data = [input dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
  

  data = [GTMBase64 encodeData:data];
    

NSString *base64String = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  

  return base64String;


}




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


  NSData *data = [input dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
 

   data = [GTMBase64 decodeData:data];
  

  NSString *base64String = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  

  return base64String;


}




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


  data = [GTMBase64 encodeData:data];
   

 NSString *base64String = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
   

 return base64String;


}




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


  data = [GTMBase64 decodeData:data];
    

NSString *base64String = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    

return base64String;


}



    3.
BASE64加密iOS代碼加密使用方法
//    BASE64加密
   


 NSString *baseEncodeString = [GTMBase64 encodeBase64String:password];
    

NSString *baseDecodeString = [GTMBase64 decodeBase64String:baseEncodeString];
  

  NSLog(@"baseEncodeString = %@",baseEncodeString);
   

 NSLog(@"baseDecodeString = %@",baseDecodeString);




END


利用md5,和base64對應用中的敏感數據進行的加密和編碼。


1. md5和base64的區別


   MD5即Message-Digest Algorithm 5(信息-摘要算法5),用於確保信息傳輸完整一致。 計算機廣泛使用的雜湊算法之一(又譯摘要算法、哈希算法),主流編程語言普遍已有MD5實現。將數據(如漢字)運算爲另一固定長度值,是雜湊算法的基礎原理,MD5的前身有MD2、MD3和MD4。md5 運算結果是一個固定長度爲128位的二進制數,經過一系列的運算得到32個16進制數。
   Base64是一種使用64基的位置計數法。它使用2的最大次方來代表僅可打印的ASCII 字符。這使它可用來作爲電子郵件的傳輸編碼。在Base64中的變量使用字符A-Z、a-z和0-9 ,這樣共有62個字符,用來作爲開始的64個數字,最後兩個用來作爲數字的符號在不同的系統中而不同。一些如uuencode的其他編碼方法,和之後binhex的版本使用不同的64字符集來代表6個二進制數字,但是它們不叫Base64。

2.MD5加密算法是不可逆的,base64加密算法是可逆的

iOS應用代碼加密:
    1.    
除了以上的三種算法的iOS代碼加密之外,iOS應用代碼加密也是非常重要的,這裏就不貼代碼了,主要的iOS代碼加密方式如下,iOS應用代碼加密是 愛 加 密 平臺提供的專業的iOS加密服務。





    2.
1)本地數據加密
對NSUserDefaults,sqlite存儲文件數據加密,保護帳號和關鍵信息。





2)URL編碼加密
對程序中出現的URL進行編碼加密,防止URL被靜態分析





3)網絡傳輸數據加密
對客戶端傳輸數據提供加密方案,有效防止通過網絡接口的攔截獲取


4)方法體,方法名高級混淆
對應用程序的方法名和方法體進行混淆,保證源碼被逆向後無法解析代碼





5)程序結構混排加密
對應用程序邏輯結構進行打亂混排,保證源碼可讀性降到最低



發佈了95 篇原創文章 · 獲贊 20 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章