時間戳密碼

2021-08-09 16:56:24 字數 1678 閱讀 5297

相同的密碼明文+相同的加密演算法–>因為每次登陸時間都不同,所以每次計算出的結果也都不相同.可以充分保證密碼的安全性.

伺服器會計算兩個時間值,當期時間和前一分鐘的時間(比如:第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 ...