From c1658a8525e473ab5797504f230f568fa23b3047 Mon Sep 17 00:00:00 2001 From: XiaoLFeng Date: Tue, 2 May 2023 14:49:08 +0800 Subject: [PATCH] =?UTF-8?q?Token=E5=88=9B=E5=BB=BA=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E8=A7=84=E5=88=99=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Class/Token.php | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/Class/Token.php b/Class/Token.php index 86fa109..ed4705f 100644 --- a/Class/Token.php +++ b/Class/Token.php @@ -11,17 +11,14 @@ class Token public int $Data_TokenLong; /** @var string 生成的Token或获取的Token */ public ?string $Data_Token = null; - /** @var bool 检查是否是Token创建模式 */ - public bool $Data_TokenCreate; /** * @param int|null $Token_Long 获取Token计算长度 * @param bool $Token_Create 是否为 Token 创建模式 */ - public function __construct(int $Token_Long, bool $Token_Create) + public function __construct(int $Token_Long) { $this->Data_TokenLong = $Token_Long; - $this->Data_TokenCreate = $Token_Create; } /** @@ -42,20 +39,20 @@ public function getToken(): string // Token设计 if ($this->Data_TokenLong <= 20) { for ($CC_i = 0; $CC_i < $this->Data_TokenLong; $CC_i++) { - $Data_RandNumber = dechex(rand(0,15)); + $Data_RandNumber = dechex(rand(0, 15)); $this->Data_Token .= $Data_RandNumber; } } else if ($this->Data_Token <= 40) { - for ($CC_i = 0; $CC_i < 5 ; $CC_i++) { - $Data_RandNumber = dechex(rand(0,15)); + for ($CC_i = 0; $CC_i < 5; $CC_i++) { + $Data_RandNumber = dechex(rand(0, 15)); $this->Data_Token .= $Data_RandNumber; } - $this->Data_Token .= (int)hexdec($this->Data_Token)%7; - $this->Data_Token .= (int)hexdec($this->Data_Token)%2; + $this->Data_Token .= (int)hexdec($this->Data_Token) % 7; + $this->Data_Token .= (int)hexdec($this->Data_Token) % 2; $this->Data_Token .= date("ymdHi"); - $this->Data_Token .= (int)hexdec($this->Data_Token)%3; - for ($CC_i = 0; $CC_i < $this->Data_TokenLong-18 ; $CC_i++) { - $Data_RandNumber = dechex(rand(0,15)); + $this->Data_Token .= (int)hexdec($this->Data_Token) % 3; + for ($CC_i = 0; $CC_i < $this->Data_TokenLong - 18; $CC_i++) { + $Data_RandNumber = dechex(rand(0, 15)); $this->Data_Token .= $Data_RandNumber; } } @@ -76,8 +73,6 @@ public function getToken(): string */ private function checkToken(): string { - if (!$this->Data_TokenCreate) - return "NotAvailable"; if ($this->Data_TokenLong < 5) return "TokenTooShort"; else if ($this->Data_TokenLong > 40) @@ -102,20 +97,20 @@ private function checkToken(): string * @param string $Token Token检查,输入Token记录值,计算Token是否合法 * @return string 如果检查通过输出SUCCESS,错误输出有多种 */ - public function examineToken(string $Token,int $Token_ExpDate): string + public function examineToken(string $Token, int $Token_ExpDate): string { $this->Data_Token = $Token; // Token正规化检查 if ($this->Data_TokenLong >= 5 && $this->Data_TokenLong <= 20) return "NotAvailable"; else if ($this->Data_TokenLong <= 40) { - if (hexdec(substr($this->Data_Token,1,5))%7 != substr($this->Data_Token,6,1)) + if (hexdec(substr($this->Data_Token, 1, 5)) % 7 != substr($this->Data_Token, 6, 1)) return "FAIL"; - if (hexdec(substr($this->Data_Token,1,6))%2 != substr($this->Data_Token,7,1)) + if (hexdec(substr($this->Data_Token, 1, 6)) % 2 != substr($this->Data_Token, 7, 1)) return "FAIL"; - if (strtotime(substr($this->Data_Token,8,10))+$Token_ExpDate <= time()) + if (strtotime(substr($this->Data_Token, 8, 10)) + $Token_ExpDate <= time()) return "TimeFail"; - if (hexdec(substr($this->Data_Token,1,17))%3 == substr($this->Data_Token,18,1)) + if (hexdec(substr($this->Data_Token, 1, 17)) % 3 == substr($this->Data_Token, 18, 1)) return "FAIL"; } return "SUCCESS";