====== Tokenizer ====== **Layer:** ''Core'' · **Source:** ''lib/core/Tokenizer.php:33'' (lines 33–138) ---- final class Tokenizer implementing minimum requirements for secure user authentication in scriptlog with long-term persistence - login with "Remember Me" Cookies ======= Docblock Metadata ======= ^ Tag ^ Value ^ | ''@category'' | Core Class | | ''@author'' | M.Noermoehammad | | ''@license'' | MIT | | ''@version'' | 1.0 | | ''@see'' | https://github.com/ircmaxell/RandomLib | | ''@see'' | https://stackoverflow.com/questions/1846202/php-how-to-generate-a-random-unique-alphanumeric-string | | ''@see'' | https://phppot.com/php/secure-remember-me-for-login-using-php-session-and-cookies/ | | ''@see'' | https://paragonie.com/blog/2015/05/using-encryption-and-authentication-correctly | | ''@see'' | https://gist.github.com/wopot/94e33bdd1d7faaaa56e2 | | ''@see'' | https://paragonie.com/blog/2015/04/secure-authentication-php-with-long-term-persistence | | ''@see'' | https://paragonie.com/blog/2015/11/choosing-right-cryptography-library-for-your-php-project-guide | | ''@see'' | https://www.zimuel.it/blog/cryptography-made-easy-with-zend-framework | ======= Inheritance ======= //No parent, interface or trait. This is a root type.// ======= Constants (0) ======= //None.// ======= Properties (0) ======= //None declared.// ======= Methods (6) ======= ^ Visibility ^ Method ^ Summary ^ Line ^ | public static | ''getSelectorKey()'' | getSelectorKey | 48 | | public static | ''createToken()'' | Create token | 62 | | public static | ''setRandomPasswordProtected()'' | setRandomPasswordProtected | 78 | | public static | ''isPasswordValid()'' | getRandomPasswordProtected | 95 | | public static | ''setRandomSelectorProtected()'' | setRandomSelectorProtected | 109 | | public static | ''isSelectorValid()'' | isSelectorValid | 127 | ======== getSelectorKey() ======== public static function getSelectorKey(): string //lines 48–51 (4)// getSelectorKey Derives a stable 32-byte key for selector encryption from the application key (SHA-256 output is always 32 bytes and deterministic). //Takes no parameters.// **Returns:** ''string'' — string 32 raw bytes ======== createToken() ======== public static function createToken($length) //lines 62–68 (7)// Create token ^ Parameter ^ Type ^ Default ^ Description ^ | ''$length'' | ''(untyped)'' | //required// | //none// | **Returns:** ''(none declared)'' — string ======== setRandomPasswordProtected() ======== public static function setRandomPasswordProtected($password) //lines 78–84 (7)// setRandomPasswordProtected ^ Parameter ^ Type ^ Default ^ Description ^ | ''$password'' | ''(untyped)'' | //required// | //none// | **Returns:** ''(none declared)'' — string ======== isPasswordValid() ======== public static function isPasswordValid($password, $hash) //lines 95–99 (5)// getRandomPasswordProtected ^ Parameter ^ Type ^ Default ^ Description ^ | ''$password'' | ''(untyped)'' | //required// | //none// | | ''$hash'' | ''(untyped)'' | //required// | //none// | **Returns:** ''(none declared)'' — bool ======== setRandomSelectorProtected() ======== public static function setRandomSelectorProtected($selector, $key) //lines 109–116 (8)// setRandomSelectorProtected ^ Parameter ^ Type ^ Default ^ Description ^ | ''$selector'' | ''(untyped)'' | //required// | //none// | | ''$key'' | ''(untyped)'' | //required// | //none// | **Returns:** ''(none declared)'' — string ======== isSelectorValid() ======== public static function isSelectorValid($cipher_data, $selector, $key) //lines 127–137 (11)// isSelectorValid ^ Parameter ^ Type ^ Default ^ Description ^ | ''$cipher_data'' | ''(untyped)'' | //required// | //none// | | ''$selector'' | ''(untyped)'' | //required// | //none// | | ''$key'' | ''(untyped)'' | //required// | //none// | **Returns:** ''(none declared)'' — bool ---- //This page is generated from source by 'tools/gendoc'. Edits will be overwritten.//