iOS加密4——動態(tài)密碼(時間戳密碼)

一姥闪、動態(tài)密碼:

我們在登錄一個手機app時蛔溃,每次輸入的賬戶密碼都是固定的。但是這樣呢如果通過網(wǎng)絡請求發(fā)送時瓦宜,容易被攔截獲取到賬號密碼蔚万。其中有一種加密的方式,就是使用動態(tài)的密碼進行登錄临庇。這樣保密性會高很多反璃。動態(tài)密碼,實際上是先將普通密碼加密再加上一段會變化的數(shù)據(jù)(比如時間)再進行一次加密假夺。這樣我們每次獲得的密碼部分都是不同的淮蜈。這就是動態(tài)密碼的大概含義——理解の。

動態(tài)密碼: 相同的密碼明文,每次發(fā)送到服務器,密碼都不同. ---時間戳密碼!
時間間隔越小,密碼安全性越高! 一分鐘/將軍令/U盾

二已卷、時間戳密碼的約定

動態(tài)密碼梧田,我們需要事先和后臺約定好對數(shù)據(jù)的加密方式。

  1. 服務器和客戶端必須以相同的加密方式加密侧蘸。
  2. 服務器時間和客戶端的時間必須一致裁眯。
  3. 因為我們發(fā)送網(wǎng)絡請求時,需要一點時間讳癌〈┪龋可能會造成我們發(fā)送請求的時間與服務器接收到的時間發(fā)生時間差的情況。所以一段服務器端會計算兩次(當前時間和一分鐘后時間)這樣我們調(diào)用接口時晌坤,會和他們進行判斷逢艘,有一個正確,就認為賬號密碼正確——登錄成功泡仗。

三埋虹、實例代碼步驟

  1. 對密碼進行加密(調(diào)用到我們寫的加密方法),創(chuàng)建字符串對象password接收娩怎。
  2. 創(chuàng)建網(wǎng)絡請求字符串urlString搔课,使用賬號和經(jīng)過加密后的密碼password(步驟1)
  3. 創(chuàng)建url
  4. 創(chuàng)建網(wǎng)絡請求對象request
  5. 發(fā)送網(wǎng)絡請求

調(diào)用到我們寫的加密方法

1、創(chuàng)建字符串對象存放服務器拿到的私鑰。
2爬泥、對密碼和私鑰進行第一次加密
3柬讨、獲取當前的時間,并對時間按照一定的格式進行處理
4、將第一次加密后的密碼和經(jīng)過處理的時間進行拼接
5袍啡、拼接后再進行一次加密踩官,然后可以返回當前得到的字符串。

  • 其中:
    私鑰
    第一次加密方式境输,
    時間格式處理蔗牡,
    時間和密碼拼接方式,
    第二次加密方式

    以上嗅剖,客戶端和服務器必須是一致的辩越。這樣我們才能獲得相同的結(jié)果。完成登錄注冊驗證信粮。
`- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
 {
     NSString *password = [self md5hmacWithPassword:@"zhangsan"];
     NSString *urlString = [NSString stringWithFormat:@"http://localhost/login/loginhmac.php?username=%@&password=%@",@"zhangsan",password];
     NSURL *url = [NSURL URLWithString:urlString];
     NSURLRequest *request = [NSURLRequest requestWithURL:url];

     [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
 NSLog(@"%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
     }];
 }`

從參數(shù)中獲取原始密碼 password 黔攒,返回加密后的.

 - (NSString *)md5hmacWithPassword:(NSString *)password
 {
     // 1、私鑰
     NSString *hmacKey = @"8a627a4578ace384017c997f12d68b23";

     // 2强缘、對密碼和私鑰進行第一次加密
     password =  [password hmacMD5StringWithKey:hmacKey];

     // 3督惰、取出當前的時間,將當前時間拼接在第一次機密的密碼后面
     NSDate *date = [NSDate date];

     // 對當前時間做格式化處理.
     NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
     [formatter setDateFormat:@"yyyy-MM-dd HH:mm"];
     NSString *timer = [formatter stringFromDate:date];

     //4、 第一次加密之后的密碼拼接當前時間
     password = [password stringByAppendingString:timer];

     //5旅掂、 對增加了時間戳的字符串進行 hmac 運算.
     password = [password hmacMD5StringWithKey:hmacKey];
     return password;
 }
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赏胚,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子辞友,更是在濱河造成了極大的恐慌栅哀,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件称龙,死亡現(xiàn)場離奇詭異,居然都是意外死亡戳晌,警方通過查閱死者的電腦和手機鲫尊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沦偎,“玉大人疫向,你說我怎么就攤上這事『篮浚” “怎么了搔驼?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長侈询。 經(jīng)常有香客問我舌涨,道長,這世上最難降的妖魔是什么扔字? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任囊嘉,我火速辦了婚禮温技,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘扭粱。我一直安慰自己舵鳞,他們只是感情好,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布琢蛤。 她就那樣靜靜地躺著蜓堕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪博其。 梳的紋絲不亂的頭發(fā)上俩滥,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機與錄音贺奠,去河邊找鬼霜旧。 笑死,一個胖子當著我的面吹牛儡率,可吹牛的內(nèi)容都是我干的挂据。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼儿普,長吁一口氣:“原來是場噩夢啊……” “哼崎逃!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起眉孩,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤个绍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后浪汪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胸囱,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年隅茎,在試婚紗的時候發(fā)現(xiàn)自己被綠了欣孤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡呀潭,死狀恐怖钉迷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情钠署,我是刑警寧澤糠聪,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站谐鼎,受9級特大地震影響舰蟆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一夭苗、第九天 我趴在偏房一處隱蔽的房頂上張望信卡。 院中可真熱鬧,春花似錦题造、人聲如沸傍菇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽丢习。三九已至,卻和暖如春淮悼,著一層夾襖步出監(jiān)牢的瞬間咐低,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工袜腥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留见擦,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓羹令,卻偏偏與公主長得像鲤屡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子福侈,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容