iOS 常用加密方式 和加密算法

一、常用加密方式:

1.通過簡單 BASE64編碼 防止數(shù)據(jù)明文傳輸

2.對普通請求、返回?cái)?shù)據(jù),生成MD5校驗(yàn)(MD5中加入動態(tài)密鑰),進(jìn)行數(shù)據(jù)完整性(簡單防篡改,安全性較低,優(yōu)點(diǎn):快速)校驗(yàn)

3.對于重要數(shù)據(jù),使用RSA進(jìn)行數(shù)字簽名,起到防篡改作

4.對于比較敏感的數(shù)據(jù),如用戶信息(登陸、注冊等),客戶端發(fā)送使用RSA加密,服務(wù)器返回使用DES(AES)加密

5.要想非常安全的傳輸數(shù)據(jù),建議使用https。抓包不可以,但是中間人攻擊則有可能。建議雙向驗(yàn)證防止中間人攻擊

二、常用加密算法

編碼方案:Base64? 。 哈希(散列)函數(shù):MD5、SHA1、SHA256。

對稱加密算法:DES、AES。

:RSA。

HTTPS:HTTP+SSL協(xié)議。

三、加密代碼實(shí)現(xiàn)方法

對一個(gè)字符串進(jìn)行base64編碼,并且返回

-(NSString*)base64EncodeString:(NSString*)string {

// 1.先轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)NSData*data = [string dataUsingEncoding:NSUTF8StringEncoding];

// 2.對二進(jìn)制數(shù)據(jù)進(jìn)行base64編碼,完成之后返回字符串

return ?[data base64EncodedStringWithOptions:0];

}

// 對base64編碼之后的字符串解碼,并且返回

-(NSString*)base64DecodeString:(NSString*)string {

// 注意:該字符串是base64編碼后的字符串

// 1.轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)(完成了解碼的過程)

NSData*data = [[NSDataalloc]initWithBase64EncodedString:string options:0];

// 2.把二進(jìn)制數(shù)據(jù)在轉(zhuǎn)換為字符串

return ? [[NSStringalloc]initWithData:data encoding:NSUTF8StringEncoding];

}

#pragma mark - md5加密方法

- (NSString*)md5String {

constchar*str =self.UTF8String;??

uint8_t buffer[CC_MD5_DIGEST_LENGTH];??

CC_MD5(str, (CC_LONG)strlen(str), buffer);

return ?[selfstringFromBytes:buffer length:CC_MD5_DIGEST_LENGTH];

}

#pragma mark - HMACMD5加密方法

- (NSString*)hmacMD5StringWithKey:(NSString*)key {

constchar*keyData = key.UTF8String;constchar*strData =self.UTF8String;??

uint8_t buffer[CC_MD5_DIGEST_LENGTH];??

CCHmac(kCCHmacAlgMD5, keyData, strlen(keyData), strData, strlen(strData), buffer);

return ?[selfstringFromBytes:buffer length:CC_MD5_DIGEST_LENGTH];

}




最后編輯于
?著作權(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ā)布平臺,僅提供信息存儲服務(wù)。

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

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