您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關php中如何使用時間綴簽名函數,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
代碼:
<?php /* * 生成md5加密字符串 * @author lee * @param 需要進行驗證的參數 * @return md5_str 生成的md5加密字符串 */ function get_md5_str($data){ ksort($data); $str = ''; foreach($data as $k=>$v){ $str .= "{$k}={$v}&"; } $md5_str = md5($str); return $md5_str; } /* * 時間綴驗簽名驗證 * @author lee * @param data 需要驗證的參數 * @param valid_str md5加密字符串 * @param expire 過期時間,默認1分鐘 * @return bool true,通過驗證;false,驗證失敗 */ function time_valid($data,$valid_str,$expire = 1){ $time = time(); // 1、格式不正確,驗證不通過 if(!is_array($data)){ return false; } // 2、時間綴未傳,驗證不通過 if(!$data['timestamp']){ return false; } // 3、時間綴不在有效范圍內,驗證不通過 if(($data['timestamp'] < ($time - $expire * 60)) || ($data['timestamp'] > ($time + $expire * 60))){ return false; } ksort($data); $str = ''; foreach($data as $k=>$v){ $str .= "{$k}={$v}&"; } $md5_str = md5($str); // 4、加密字符串不正確,驗證不通過 if($valid_str !== $md5_str){ return false; } return true; }
測試:
$arr = array( 'timestamp' => time(), 'title' => '標題', 'name' => '名稱' ); $md5_str = get_md5_str($arr); $ret = time_valid($arr,$md5_str); var_dump($ret);
以上就是php中如何使用時間綴簽名函數,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。