class Pike\Auth\Crypto
Abstraktoi php:n omat krypto-funktiot kuten password_hash() ja sodium_crypto_secretbox().
Synopsis
class Crypto {
/* Vakiot */
const SECRETBOX_KEYBYTES = SODIUM_CRYPTO_SECRETBOX_KEYBYTES ; // 32
/* Metodit */
public hashPass ( string $plainPass ) : string
public verifyPass ( string $plainPass, string $hashedPass ) : bool
public hash ( string $algo, string $data, bool $useRawOutput = false ) : string
public guidv4 ( void ) : string
public genRandomToken ( int $bytes = 16 ) : string
public encrypt ( string $plainStr, string $key ) : string
public decrypt ( string $encodedStr, string $key ) : string
}
Vakiot
- SECRETBOX_KEYBYTES
encrypt|decrypt()
avaimen pituus, tavua.
Metodit
hashPass()
Ks. password_hash().
Signature
public function hashPass ( string $plainPass ) : string
Esimerkit
$hashed = $crypto->hashPass('salasana');
verifyPass()
Ks. password_verify().
Signature
public function verifyPass ( string $plainPass, string $hashedPass ) : bool
Esimerkit
$ok = $crypto->verifyPass('salasana', 'hashattu-salasana');
hash()
Ks. hash().
Signature
public function hash ( string $algo, string $data, bool $useRawOutput = false ) : string
Esimerkit
$hashed = $crypto->hash('sha256', 'merkkijono');
$hashed = $crypto->hash('non-existing-algo', 'merkkijono'); // Heittää poikkeuksen
guidv4()
Luo uuden UUID:n.
Signature
public function guidv4 ( void ) : string
Esimerkit
$uuid = $crypto->guidv4();
genRandomToken()
Luo satunnaisen merkkijonon, ks. random_bytes().
Signature
public function genRandomToken ( int $bytes = 16 ) : string
Esimerkit
$randomString = $crypto->genRandomToken(32);
encrypt()
Enkryptoi merkkijonon. Ks. sodium_crypto_secretbox().
Signature
public function encrypt ( string $plainStr, string $key ) : string
Esimerkit
$encryptedString = $crypto->encrypt('plain', 'merkkijono');
decrypt()
Verifioi ja dekryptoi merkkijonon. Ks. sodium_crypto_secretbox_open().
Signature
public function decrypt ( string $encodedStr, string $key ) : string
Esimerkit
$plainString = $crypto->decrypt('encoded', 'merkkijono');