PHP: Sichere und unikate Token erstellen

Für die Getnudged API verwende ich Token um Benutzer zu authentifizieren, oder ihnen Pakete zuzuweisen. Pakete sind in unserem System optionale und/oder relevante Erweiterungen.

Im Grunde sind sie mit “Modulen” gleichzustellen. Also hat der Administrator beispielsweise Zugang zum Paket Benutzer um alle Benutzer zu verwalten. Der Benutzer an sich hat allerdings nur Zugang zum Paket “Profile” und kann seine eigenen Einstellungen verändern.

Zurück aber zum Token. Ich hatte nach einer Möglichkeit gesucht, einen sicheren aber unikaten Token für jeden Benutzer zu erstellen. Meine Suchen im Internet haben mich zu folgendem PHP script geführt:

<?php  
$token = openssl_random_pseudo_bytes(16);        
$token = bin2hex($token);

return $token;

Ergebnis: 523b48159631e4e28ab1be060d64e095

So bekommen wir einen 32 stelligen Token. Jetzt wollte ich aber noch Bindestriche nach jedem 8ten Charakter haben. Das habe ich folgendermaßen gelöst:

<?php  
$token = openssl_random_pseudo_bytes(16);        
$token = bin2hex($token);

$token = chunk_split($token, 8, '-');
$token = rtrim($token, '-');

return $token;

Ergebnis: 523b4815-9631e4e2-8ab1be06-0d64e095

So einfach geht das. Weitere Details zu den verschiedenen Funktionen findest du hier:

Hat dir der Beitrag gefallen?
Ja
Nein

Posted by Kevin Pliester

Kevin ist PHP- und WordPress-Entwickler. Gelegentlich teilt er auch Tipps zum Thema Selbstständigkeit. Er ist seit 2015 glücklich verheiratet, lebt in Dormagen und arbeitet immer von Zuhause aus. Kevin telefoniert nicht gerne und bevorzugt die Kommunikation via E-Mail oder Chat.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.