国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

token 的生成雜談

willin / 1623人閱讀

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

背景

很多時(shí)候我們需要用 token 來(lái)作為一些標(biāo)識(shí), 比如: 一個(gè)用戶(hù)登錄后的認(rèn)證標(biāo)識(shí).

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

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

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

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

優(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 這下沒(méi)有 = 號(hào)了, 舒服了些, 但是又太長(zhǎng)了, 微信的 openid 可沒(méi)這么長(zhǎng)

換種 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 是短些了, 可是里面有 +/ 號(hào), 很多情況下用 get 傳遞時(shí)會(huì)被 urlcode, urlcode 過(guò)后就這樣了 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 這下不會(huì) urlcode了, 看著也舒服些了, 我目前是這樣用的...

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

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/29077.html

相關(guān)文章

  • 【ShareBook】1-后臺(tái)框架與小程序用戶(hù)登錄接口實(shí)戰(zhàn)

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

    zorro 評(píng)論0 收藏0
  • 前端知識(shí)雜談

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

    Cruise_Chan 評(píng)論0 收藏0
  • 前端知識(shí)雜談

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

    lingdududu 評(píng)論0 收藏0
  • 前端知識(shí)雜談

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

    fobnn 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<