62 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace kernel\services;
 | |
| 
 | |
| use Firebase\JWT\JWT;
 | |
| use kernel\helpers\Debug;
 | |
| use Random\RandomException;
 | |
| 
 | |
| class TokenService
 | |
| {
 | |
| 
 | |
|     public static function JWT(string|\OpenSSLCertificate|\OpenSSLAsymmetricKey $key, string $alg, array $payload = []): string
 | |
|     {
 | |
|         return JWT::encode(
 | |
|             payload: $payload,
 | |
|             key: $key,
 | |
|             alg: $alg
 | |
|         );
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @throws RandomException
 | |
|      */
 | |
|     public static function random_bytes(int $ln): string
 | |
|     {
 | |
|         return bin2hex(random_bytes($ln));
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @throws RandomException
 | |
|      */
 | |
|     public static function md5(): string
 | |
|     {
 | |
|         return md5(microtime() . self::getSalt(10) . time());
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @throws RandomException
 | |
|      */
 | |
|     public static function crypt(): string
 | |
|     {
 | |
|         return crypt(microtime(), self::getSalt(20));
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @throws RandomException
 | |
|      */
 | |
|     public static function hash(string $alg): string
 | |
|     {
 | |
|         return hash($alg, self::getSalt(10));
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @throws RandomException
 | |
|      */
 | |
|     public static function getSalt(int $length): string
 | |
|     {
 | |
|         return bin2hex(random_bytes($length));
 | |
|     }
 | |
| 
 | |
| } |