Token创建审核规则优化
This commit is contained in:
parent
909cd1e0dc
commit
c1658a8525
|
@ -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";
|
||||
|
|
Loading…
Reference in New Issue
Block a user