suchen

怎么使用token

Jun 13, 2016 pm 12:01 PM
nbspstringsubstrtoken

如何使用token
我看到别人的手机客户端和服务器端交互时都带有一个token,token的原理是什么?该如何实现?我现在使用php开发服务器端该如何实现?
------解决方案--------------------
token 用来验证 请求是属于你的客户端发出的  只有token 校验为true时服务器才会接受请求 返回数据
------解决方案--------------------
那个token就是一个令牌,用来判断身份的。

首先服务器创建一个token传到客户端,客户端每次请求,都把token传给服务器验证身份。

来一个简单的,将id加密为token,然后把token解密为id

<br /><?php<br />define('KEY', '#^DKHSD&*F'); // 定义密钥<br /><br />$id = '123';<br />$token = genToken($id);<br /><br />echo 'id encrypt token='.$token.'<br>';<br />echo 'token decrypt id='.checkToken($token);<br /><br />// 创建token<br />function genToken($id){<br />    $str = json_encode(array(time(),mt_rand(1000,9999),$id));<br />    return authcode($str, 'ENCODE', KEY);<br />}<br /><br />// 验证token<br />function checkToken($token){<br />    $str = authcode($token, 'DECODE', KEY);<br />    $result = json_decode($str);<br />    if(is_array($result)){<br />        return $result[2];<br />    }else{<br />        return 'decrypt fail';<br />    }<br />}<br /><br /><br />// 加密/解密方法<br />function authcode($string, $operation = 'DECODE', $key){<br /><br />    $ckey_length = 4;   // 随机密钥长度 取值 0-32;<br /><br />    $key = md5($key);<br />    $keya = md5(substr($key, 0, 16));<br />    $keyb = md5(substr($key, 16, 16));<br />    $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';<br /><br />    $cryptkey = $keya.md5($keya.$keyc);<br />    $key_length = strlen($cryptkey);<br /><br />    $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', 0).substr(md5($string.$keyb), 0, 16).$string;<br />    $string_length = strlen($string);<br /><br />    $result = '';<br />    $box = range(0, 255);<br /><br />    $rndkey = array();<br />    for($i = 0; $i <= 255; $i++) {<br />        $rndkey[$i] = ord($cryptkey[$i % $key_length]);<br />    }<br /><br />    for($j = $i = 0; $i < 256; $i++) {<br />        $j = ($j + $box[$i] + $rndkey[$i]) % 256;<br />        $tmp = $box[$i];<br />        $box[$i] = $box[$j];<br />        $box[$j] = $tmp;<br />    }<br /><br />    for($a = $j = $i = 0; $i < $string_length; $i++) {<br />        $a = ($a + 1) % 256;<br />        $j = ($j + $box[$a]) % 256;<br />        $tmp = $box[$a];<br />        $box[$a] = $box[$j];<br />        $box[$j] = $tmp;<br />        $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));<br />    }<br /><br />    if($operation == 'DECODE') {<br />        if((substr($result, 0, 10) == 0 <br><font color='#FF8000'>------解决方案--------------------</font><br> substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {<br />            return substr($result, 26);<br />        } else {<br />            return '';<br />        }<br />    } else {<br />        return $keyc.str_replace('=', '', base64_encode($result));<br />    }<br /><br />}<br />?><br />

------解决方案--------------------
token 令牌, 客户端和服务端 相互验证,即加密和解密
生成加密字符串即可。
------解决方案--------------------
如果检测到有 token,那么这个 token 可以继续使用
不过 token 本意是防止恶意访问,复用就有可被利用的漏洞
所以还是每次发放比较好

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Wie berechnet man die Gesamtzahl der Elemente in einem multidimensionalen PHP -Array?Wie berechnet man die Gesamtzahl der Elemente in einem multidimensionalen PHP -Array?May 15, 2025 pm 09:00 PM

Die Berechnung der Gesamtzahl der Elemente in einem multidimensionalen PHP -Array kann mit rekursiven oder iterativen Methoden erfolgen. 1. Die rekursive Methode zählt durch Überqueren des Arrays und die rekursive Verarbeitung verschachtelter Arrays. 2. Die iterative Methode verwendet den Stapel, um die Rekursion zu simulieren, um Tiefenprobleme zu vermeiden. 3. Die Funktion array_walk_recursive kann ebenfalls implementiert werden, erfordert jedoch eine manuelle Zählung.

Was sind die Merkmale von Schleifen in PHP?Was sind die Merkmale von Schleifen in PHP?May 15, 2025 pm 08:57 PM

In PHP besteht das Merkmal einer DO-While-Schleife darin, sicherzustellen, dass der Schleifenkörper mindestens einmal ausgeführt wird, und dann zu entscheiden, ob die Schleife basierend auf den Bedingungen fortgesetzt werden soll. 1) Es wird die Schleifenkörper vor der bedingten Überprüfung ausgeführt, die für Szenarien geeignet ist, in denen Vorgänge mindestens einmal ausgeführt werden müssen, z. B. die Überprüfung der Benutzereingabe und der Menüsysteme. 2) Die Syntax der DO-While-Schleife kann jedoch bei Neulingen Verwirrung verursachen und unnötige Leistungsaufwand verleihen.

Wie kann man in PHP Saiten hasht?Wie kann man in PHP Saiten hasht?May 15, 2025 pm 08:54 PM

Effiziente Hashing -Zeichenfolgen in PHP können die folgenden Methoden verwenden: 1. Verwenden Sie die MD5 -Funktion für schnelles Hashing, eignen sich jedoch nicht für den Kennwortspeicher. 2. Verwenden Sie die SHA256 -Funktion, um die Sicherheit zu verbessern. 3.. Verwenden Sie die Funktion password_hash, um Passwörter zu verarbeiten, um die höchste Sicherheit und Bequemlichkeit zu gewährleisten.

Wie implementieren Sie ein Array -Schiebebefenster in PHP?Wie implementieren Sie ein Array -Schiebebefenster in PHP?May 15, 2025 pm 08:51 PM

Durch die Implementierung eines Array -Schieberfensters in PHP kann durch Funktionen Diawindow und SlideWindowaverage durchgeführt werden. 1. Verwenden Sie die Diawindow-Funktion, um ein Array in ein Subarray mit fester Größe aufzuteilen. 2. Verwenden Sie die SlideWindowAverage -Funktion, um den Durchschnittswert in jedem Fenster zu berechnen. 3. Für Echtzeitdatenströme können asynchrone Verarbeitung und Ausreißererkennung unter Verwendung von ReactPHP verwendet werden.

Wie verwende ich die __clone -Methode in PHP?Wie verwende ich die __clone -Methode in PHP?May 15, 2025 pm 08:48 PM

Die __clone -Methode in PHP wird verwendet, um benutzerdefinierte Operationen beim Klonen von Objekten durchzuführen. Beim Klonen eines Objekts mit dem Klonschlüsselwort wird die Methode automatisch aufgerufen.

Wie benutze ich die GOTO -Anweisung in PHP?Wie benutze ich die GOTO -Anweisung in PHP?May 15, 2025 pm 08:45 PM

In PHP werden GOTO -Aussagen verwendet, um bedingungslos zu bestimmten Tags im Programm zu springen. 1) Es kann die Verarbeitung komplexer verschachtelter Schleifen oder bedingten Aussagen vereinfachen. 2) 2) Die Verwendung von GOTO kann den Code schwer zu verstehen und zu warten, und 3) wird empfohlen, die Verwendung strukturierter Kontrollanweisungen vorrangig zu machen. Insgesamt sollte GOTO mit Vorsicht verwendet werden und Best Practices werden befolgt, um die Lesbarkeit und Wartbarkeit des Codes zu gewährleisten.

Wie implementieren Sie Datenstatistiken in PHP?Wie implementieren Sie Datenstatistiken in PHP?May 15, 2025 pm 08:42 PM

In PHP können Datenstatistiken mit integrierten Funktionen, benutzerdefinierten Funktionen und Bibliotheken von Drittanbietern erreicht werden. 1) Verwenden Sie integrierte Funktionen wie array_sum () und count (), um grundlegende Statistiken durchzuführen. 2) Schreiben Sie benutzerdefinierte Funktionen, um komplexe Statistiken wie Mediane zu berechnen. 3) Verwenden Sie die PHP-ML-Bibliothek, um eine erweiterte statistische Analyse durchzuführen. Durch diese Methoden können Datenstatistiken effizient durchgeführt werden.

Wie benutze ich anonyme Funktionen in PHP?Wie benutze ich anonyme Funktionen in PHP?May 15, 2025 pm 08:39 PM

Ja, anonyme Funktionen in PHP beziehen sich auf Funktionen ohne Namen. Sie können als Parameter an andere Funktionen und als Rückgabewerte von Funktionen übergeben werden, wodurch der Code flexibler und effizienter wird. Bei Verwendung anonymer Funktionen müssen Sie auf Umfangs- und Leistungsprobleme achten.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Nordhold: Fusionssystem, erklärt
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung