成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

token 的生成雜談

willin / 1628人閱讀

摘要:背景很多時候我們需要用來作為一些標識比如一個用戶登錄后的認證標識實現(xiàn)方式的方式自己定義的需要的值這里用隨機串作為執(zhí)行結(jié)果看著不是很舒服作為強迫癥的我是受不了的的方式執(zhí)行結(jié)果看著稍微舒服些了但是還不夠好反觀微信的一般是不會有后面的號的優(yōu)化執(zhí)行

背景

很多時候我們需要用 token 來作為一些標識, 比如: 一個用戶登錄后的認證標識.

實現(xiàn)方式 md5 的方式:
$v = 1; // 自己定義的 需要hash 的value 值
$key = mt_rand(); // 這里用 隨機串作為key
$hash = md5($key . $v . mt_rand() . time());
echo $hash;

執(zhí)行結(jié)果: b63426a38f86b726ce0d327d48e47376 看著不是很舒服, 作為強迫癥的我 是受不了的.

md5 + base64 的方式
$v = 1;
$key = mt_rand();
$hash = md5($key . $v . mt_rand() . time());
$token = base64_encode($hash);
echo $token;

執(zhí)行結(jié)果: MWQyMjE2NmI3NDA1MmRjZTQwOTQzZDZjMWU1OTE5OGU= 看著稍微舒服些了, 但是還不夠好, 反觀微信的 openid , 一般是不會有后面的 = 號的

優(yōu)化

$v = 1;
$key = mt_rand();
$hash = md5($key . $v . mt_rand() . time());
$token = str_replace("=", "", base64_encode($hash));
echo $token;

執(zhí)行結(jié)果: Yzg4MWU0OTQ0MTRiZTI0YWYwMDJjOTYyODBkNjFmMTM 這下沒有 = 號了, 舒服了些, 但是又太長了, 微信的 openid 可沒這么長

換種 hash 試試
sha1 + base64 的方式
$v = 1;
$key = mt_rand();
$hash = hash_hmac("sha1", $v . mt_rand() . time(), $key, true);
$token = str_replace("=", "", base64_encode($hash));
echo $token;

執(zhí)行結(jié)果: 7pn0pWzO+/TOoISNtDaewa4CyuXw 是短些了, 可是里面有 +/ 號, 很多情況下用 get 傳遞時會被 urlcode, urlcode 過后就這樣了 7pn0pWzO%2b%2fTOoISNtDaewa4CyuXw, 這顯然不是我們想要的

繼續(xù)優(yōu)化
$v = 1;
$key = mt_rand();
$hash = hash_hmac("sha1", $v . mt_rand() . time(), $key, true);
$token = str_replace("=", "", strtr(base64_encode($hash), "+/", "-_"));
echo $token;

執(zhí)行結(jié)果: JM9AkY7SAIROrJ7fhjIU2ApbMsI 這下不會 urlcode了, 看著也舒服些了, 我目前是這樣用的...

但是這是不是最優(yōu)方案呢?

目前沒發(fā)現(xiàn)什么更好的方案, 只是說出了我認為的比較好的方案

Vue-cli3.0 + Element UI + ThinkPHP5.1 + RBAC權(quán)限 + 響應(yīng)式的后臺管理系統(tǒng)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/29077.html

相關(guān)文章

  • 【ShareBook】1-后臺框架與小程序用戶登錄接口實戰(zhàn)

    摘要:注冊流程是從小程序簡稱,以下替代獲取用戶的,給到服務(wù)器,服務(wù)器會用還有自己的等信息一起去微信服務(wù)器請求用戶數(shù)據(jù),注意每一個所對應(yīng)的用戶都是不一樣的。 本博客 貓叔的博客,轉(zhuǎn)載請申明出處閱讀本文約 5分鐘適讀人群:Java后端、Java初級、小程序前端 前后端項目的地址 ShareBookServer ShareBookClient 小程序前端 showImg(https://seg...

    zorro 評論0 收藏0
  • 前端知識雜談

    摘要:整理一些常用前端知識點,忘記的時候可以翻出來回憶下瀏覽器渲染從輸入網(wǎng)址到顯示網(wǎng)頁的過程分析應(yīng)用層解析域名客戶端先檢查本地是否有對應(yīng)的地址,若找到則返回響應(yīng)的地址。是高階函數(shù)的一種一個特殊用法。 整理一些常用前端知識點,忘記的時候可以翻出來回憶下 瀏覽器渲染 從輸入網(wǎng)址到顯示網(wǎng)頁的過程分析 1、應(yīng)用層DNS解析域名:客戶端先檢查本地是否有對應(yīng)的IP地址,若找到則返回響應(yīng)的IP地址。若沒找...

    Cruise_Chan 評論0 收藏0
  • 前端知識雜談

    摘要:整理一些常用前端知識點,忘記的時候可以翻出來回憶下瀏覽器渲染從輸入網(wǎng)址到顯示網(wǎng)頁的過程分析應(yīng)用層解析域名客戶端先檢查本地是否有對應(yīng)的地址,若找到則返回響應(yīng)的地址。是高階函數(shù)的一種一個特殊用法。 整理一些常用前端知識點,忘記的時候可以翻出來回憶下 瀏覽器渲染 從輸入網(wǎng)址到顯示網(wǎng)頁的過程分析 1、應(yīng)用層DNS解析域名:客戶端先檢查本地是否有對應(yīng)的IP地址,若找到則返回響應(yīng)的IP地址。若沒找...

    lingdududu 評論0 收藏0
  • 前端知識雜談

    摘要:整理一些常用前端知識點,忘記的時候可以翻出來回憶下瀏覽器渲染從輸入網(wǎng)址到顯示網(wǎng)頁的過程分析應(yīng)用層解析域名客戶端先檢查本地是否有對應(yīng)的地址,若找到則返回響應(yīng)的地址。是高階函數(shù)的一種一個特殊用法。 整理一些常用前端知識點,忘記的時候可以翻出來回憶下 瀏覽器渲染 從輸入網(wǎng)址到顯示網(wǎng)頁的過程分析 1、應(yīng)用層DNS解析域名:客戶端先檢查本地是否有對應(yīng)的IP地址,若找到則返回響應(yīng)的IP地址。若沒找...

    fobnn 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<