//聯(lián)系人:石虎QQ: 1224614774昵稱:嗡嘛呢叭咪哄
01.用戶信息安全
================================================================================
1>數(shù)據(jù)安全原則
不能存儲(本地&服務(wù)器)與安全相關(guān)的明文信息
不能直接在網(wǎng)路上傳遞與安全相關(guān)的明文信息
2>? BASE64編碼
Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)代碼的編碼方式之一母赵,使用Base64編碼后的文件只有65個字符a~z,A~Z,0~9,+,/,=
作用:將任何的二進制數(shù)據(jù),編碼成字符串/二進制的數(shù)據(jù)的格式凹嘲!
特點:能夠"逆運算"师倔!
是很多加密算法的底層算法
3>? HASH哈希函數(shù)(散列函數(shù))
MD5-國內(nèi)使用多
SHA1-美國國家安全局使用較多
原理:把一組數(shù)據(jù)打亂,提取出特征碼周蹭,"指紋"識別趋艘,不能被反算
* MD5任何數(shù)據(jù)打亂疲恢,都會生成32位固定長度的字符串
*不僅可以對密碼進行加密,而且可以制作文件的指紋瓷胧,可以防止文件被篡改
MD5密碼查詢網(wǎng)站http://www.cmd5.com
記錄超過24萬億條显拳,共占用160T硬盤,成功率95%
密碼加密的原則:同一個密碼搓萧,使用同一個加密算法萎攒,每次得到的結(jié)果是不一樣的。
實現(xiàn)思路介紹
02.SSLKeychain
================================================================================
框架地址:https://github.com/soffes/sskeychain
1>將密碼保存至鑰匙串
//用戶登錄成功矛绘,將密碼保存到鑰匙串
//提示:鑰匙串只能保證密碼的存儲安全耍休,但是不能保證密碼的傳輸安全
NSError *error =nil;
[SSKeychain setPassword:self.pwdText.text forService:kLoginKeyServiceName account:self.usernameText.text];
if(error) {
NSLog(@"%@", error);
}
2>從鑰匙串讀取密碼
NSString *pwd = [SSKeychain passwordForService:kLoginKeyServiceName account:self.usernameText.text];
3>查詢鑰匙串內(nèi)容
[SSKeychain allAccounts];
4>刪除鑰匙串
[SSKeychain deletePasswordForService:kLoginKeyServiceName account:@"zhangsan"];
03.Cookie
================================================================================
1>只要服務(wù)器支持Cookie,在下次提交的時候货矮,就可以直接從Cookie向服務(wù)器發(fā)送數(shù)據(jù)羊精,而無序再拼接請求參數(shù)
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:url];
if(cookies.count >0) {
NSLog(@"已經(jīng)有cookie");
}else{
NSString *bodyStr = [NSString stringWithFormat:@"username=%@&password=%@", username, pwd];
request.HTTPBody = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];
}
2>讀取Cookie并設(shè)置UI
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
for(NSHTTPCookie *cookieincookies) {
if([cookie.name isEqualToString:@"userName"]) {
self.username.text = cookie.value;
}
if([cookie.name isEqualToString:@"userPassword"]) {
self.password.text = cookie.value;
}
}
3>刪除Cookie,一般不需要
//讀取所有cookie
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
//刪除cookie
for(NSHTTPCookie *cookieincookies) {
[[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
}
謝謝!!!