1.對(duì)稱加密的話用AES最好轩猩,蘋(píng)果系統(tǒng)肿轨,美國(guó)安全局上炎,RSA中的對(duì)稱加密都是同的AES加密
1.用戶密碼本地化的話恃逻,建議使用鑰匙串加密。使用第三方SSkeychain,
2.一些簡(jiǎn)單又機(jī)密的數(shù)據(jù)可以AES加密
1.base64加密
base64編碼是現(xiàn)代密碼學(xué)的基礎(chǔ)
基本原理:
1.原本的8個(gè)bit一組表示數(shù)據(jù)藕施,改為6個(gè)bit一組表示數(shù)據(jù)辛块,不足的部分補(bǔ)零,每?jī)蓚€(gè)0用一個(gè)=表示铅碍;
// 將數(shù)據(jù)進(jìn)行加密
// 獲取需要加密的二進(jìn)制數(shù)據(jù)
NSData *data = [NSData dataWithContentsOfFile:@"1221211212"];
NSData *base64Data = [data base64EncodedDataWithOptions:0];
//將加密后的文件存儲(chǔ)到桌面
[base64Data writeToFile:@"/Users/wangpengfei/Desktop/123" atomically:YES];
//解密
//獲取加密后的文件
NSData *base64DATA = [NSData dataWithContentsOfFile:@"/Users/wangpengfei/Desktop/123"];
//解密加密后的二進(jìn)制數(shù)據(jù)
NSData *baseData = [[NSData alloc]initWithBase64EncodedData:base64DATA options:0];
post加密
token值介紹
token:登錄令牌润绵,利用token值來(lái)判斷用戶的登錄狀態(tài),類似于MD5加密之后的長(zhǎng)字符串胞谈,用戶登錄成功之后尘盼,在服務(wù)器端會(huì)根據(jù)用戶信息生成一個(gè)唯一的值,這個(gè)值就是token值烦绳。
基本使用:
1.在服務(wù)器端會(huì)保存這個(gè)token值卿捎,以后利用這個(gè)token來(lái)檢索對(duì)應(yīng)的用戶信息,并且判斷用戶的登錄狀態(tài)径密;
2.用戶登錄成功之后午阵,服務(wù)器會(huì)將生成的token值返回給客戶端,在客戶端也會(huì)保存這個(gè)token值享扔。
3.以后客戶端在發(fā)送新的網(wǎng)絡(luò)請(qǐng)求的時(shí)候底桂,會(huì)默認(rèn)自動(dòng)附帶這個(gè)token值。服務(wù)器拿到客戶端傳遞的token值跟保存在數(shù)據(jù)庫(kù)的token值對(duì)比惧眠,以此判斷用戶的身份籽懦。
3.MD5加密
把一個(gè)任意長(zhǎng)度的字節(jié)串變換成一定長(zhǎng)度的十六進(jìn)制的大整數(shù)。
注意氛魁,字符串的轉(zhuǎn)換過(guò)程是不可逆的暮顺,不能通過(guò)加密結(jié)果厅篓,反向推導(dǎo)內(nèi)容基本介紹
需要導(dǎo)入第三方框架:NSString+Hash
MD5特點(diǎn):
1.壓縮性:任意長(zhǎng)度的數(shù)據(jù),算出的MD5值長(zhǎng)度都是固定的捶码。
2.容易計(jì)算:從源數(shù)據(jù)計(jì)算出來(lái)的MD5值很容易羽氮;
3.抗修改性:對(duì)原數(shù)據(jù)進(jìn)行任何改動(dòng),哪怕只修改一個(gè)字節(jié)惫恼,所得到的MD5值都有很大區(qū)別乏苦;
4.弱抗碰撞:已有原數(shù)據(jù)和其MD5值,想找到一個(gè)具有相同MD5值的數(shù)據(jù)是非常困難的尤筐;
5.強(qiáng)抗碰撞:想找到兩個(gè)不同數(shù)據(jù),使他們具有相同的MD5值是非常困難的洞就。
MD5應(yīng)用:
一致性驗(yàn)證:MD5將整個(gè)文件當(dāng)做一個(gè)大文本信息盆繁,通過(guò)不可逆的字符串變換算法,產(chǎn)生一個(gè)唯一的MD5信息摘要旬蟋,就像每個(gè)人都有獨(dú)一無(wú)二的指紋油昂,MD5對(duì)任何文件產(chǎn)生一個(gè)獨(dú)一無(wú)二的數(shù)字指紋。
利用MD5來(lái)進(jìn)行文件校驗(yàn)倾贰,被大量應(yīng)用在軟件下載站冕碟,論壇數(shù)據(jù)庫(kù),系統(tǒng)文件安全等方面
時(shí)間戳密碼
基本介紹:
動(dòng)態(tài)密碼:相同的密碼明文+相同的加密算法->英文每次登錄時(shí)間都不同匆浙,所以計(jì)算出的結(jié)果也都不相同安寺,可以充分保證密碼的安全性。
服務(wù)器會(huì)計(jì)算兩個(gè)時(shí)間值首尼,當(dāng)期時(shí)間和前一分鐘的時(shí)間(比如第59秒發(fā)送的網(wǎng)絡(luò)請(qǐng)求一秒鐘后服務(wù)器收到并作出響應(yīng)挑庶,這時(shí)服務(wù)器當(dāng)前時(shí)間比客戶端發(fā)送時(shí)間晚一分鐘,仍然能夠判斷準(zhǔn)確的值)
鑰匙串訪問(wèn)
基本介紹:
1.蘋(píng)果7.0.3版本以后公布鑰匙串訪問(wèn)的SDK.鑰匙串訪問(wèn)接口是純C語(yǔ)言的软能。
2.鑰匙串使用AES 256加密算法迎捺,能夠保證用戶密碼的安全;
3.鑰匙串訪問(wèn)的第三方框架SSKeychain,是對(duì)C語(yǔ)言框架的封裝查排。
4.鑰匙串訪問(wèn)的密碼保存在哪里凳枝?只有蘋(píng)果才知道
指紋識(shí)別
簡(jiǎn)單介紹
1.指紋識(shí)別功能是ipone 5S之后推出的SDK是iOS8推出
需要導(dǎo)入框架#import <LocalAuthentication/LocalAuthentication.h>
2.用base64編碼之后,數(shù)據(jù)長(zhǎng)度會(huì)變大跋核,增加大約1/3左右岖瑰。(8-6)/6可進(jìn)行反向解密