相同的密碼明文+相同的加密演算法–>因為每次登陸時間都不同,所以每次計算出的結果也都不相同.可以充分保證密碼的安全性.
伺服器會計算兩個時間值,當期時間和前一分鐘的時間(比如:第59s傳送的網路請求,一秒鐘後伺服器收到並作出響應,這時伺服器當前時間比客戶端傳送時間晚一分鐘,仍然能夠判斷準確的值)
獲取md5 首次加密的密碼
// 1. 當前密碼
nsstring *password = @"zhang";
// 2. hmackey值,是對「wangpengfei」 進行 md5加密之後的值(動態生成的)
nsstring *hmackey = @"d3bba33b51acaa0a272de7a2f6dfa233";
加密過程
// 1. 第一次加密:第一次 hmac 運算
password = [password hmacmd5stringwithkey:hmackey];
// 2.1 獲得當前的時間
nsdate *date = [nsdate date];
// 2.2 獲得當前時間的字串
// 例項化時間格式器
nsdateformatter *formatter = [[nsdateformatter alloc] init];
// 設定時間格式
formatter.dateformat = @"yyyy-mm-dd hh:mm";
// 獲取當前時間(要和伺服器保持一致)
nsstring *datestr = [formatter stringfromdate:date];
// 3. 將第一次加密後的密碼與當前時間的字串拼接在一起
// 4. 進行第二次 hmac 加密
password = [password hmacmd5stringwithkey:hmackey];
訪問 loginhmac.php 介面,傳送請求
建立請求
// post 要手動設定方法,因此為可變
nsmutableurlrequest *request = [nsmutableurlrequest requestwithurl:url];
// 設定請求方法
// 設定請求體內容
傳送請求
[[[nsurlsession sharedsession] datataskwithrequest:request completionhandler:^(nsdata * _nullable data, nsurlresponse * _nullable response, nserror * _nullable error) ] resume];
時間戳 時間
由於團隊業務做的是國際專案,就無法避免乙個問題 時區問題,很多業務都是跟時間有關。一些時間的對比,時間的展示,都會涉及到時區和時間戳,所以花點時間來簡單總結一下 時間戳定義 0時區1970年1月1日到現在的毫秒數,所以全世界同一時刻的時間戳都是一樣的。北京時間對應時間戳 unix 0時區對應時間的時...
js獲取時間戳 時間戳轉時間
1 var timestamp date.parse new date 精準到秒2 var timestamp new date valueof 精準到毫秒3.var timestamp new date gettime 精準到毫秒1 var a new date tolocaledatestrin...
獲取時間戳,幾個時間點的時間戳
最近的上上上乙個週日24點時間戳 threeweekago strtotime date y m d time 2 week date w time day 1 day 最近的上上乙個週日24點時間戳 twoweekago strtotime date y m d time 1 week date ...