-
Notifications
You must be signed in to change notification settings - Fork 0
RSATool
La classe RSATool est un utilitaire dédié à la cryptographie légère, au hachage et à la génération d'identifiants uniques (UUID, Tokens, Random Strings). Elle garantit l'utilisation de sources d'entropie sécurisées pour la génération de jetons de session ou de sécurité.
Namespace : Magepattern\Component\Tool\RSATool
| Méthode | Paramètres | Retour | Description |
|---|---|---|---|
| hashEncode() | string $data, string $type | string | Hache une chaîne (md5, sha1, md5_base64). |
| uniqID() | int $length | string | Génère un identifiant unique hexadécimal. |
| tokenID() | int $length | string | Génère un token aléatoire encodé en Base64. |
| randUI() | string $size | string | Génère un UUID v4 (Tiny, Micro, Small ou Large). |
| randString() | int $length | string | Chaîne alphanumérique aléatoire (A-Z, a-z, 0-9). |
| randomInt() | int $length | string | Génère une suite de chiffres aléatoires. |
| getRandomIds() | int $nb, int $max, ... | array | Retourne une liste d'entiers uniques (sans doublons). |
| alphaID() | $in, $to_num, $pad, $key | mixed | Convertit un nombre en chaîne courte (Base 62). |
- Génération de Tokens de sécurité Indispensable pour les jetons d'activation par email ou les cookies "Remember Me".
use Magepattern\Component\Tool\RSATool;
$token = RSATool::tokenID(32);
// Résultat : Un hash Base64 sécurisé- Identifiants de type UUID v4 Pour identifier des ressources sans utiliser d'IDs auto-incrémentés (protection contre le crawling).
$uuid = RSATool::randUI('Large');
// Résultat : 4f23b1a2-8e9c-4a3b-812d-5f6e7a8b9c0d- Raccourcissement d'identifiants (Short ID) La méthode alphaID permet de transformer l'ID 15000 de votre base de données en une chaîne courte comme b9A.
// Encode
$short = RSATool::alphaID(15000);
// Décode pour retrouver l'ID original
$originalId = RSATool::alphaID($short, true);Entropie : RSATool délaisse les anciennes fonctions comme rand() ou uniqid() au profit de random_int() et random_bytes(), rendant les résultats impossibles à prédire.
Calculs Large Int : La méthode alphaID requiert l'extension bcmath pour gérer les nombres dépassant les limites entières du système (64-bit).
Base62 personnalisée : En passant une $passKey à alphaID, l'alphabet de conversion est mélangé, rendant vos IDs courts impossibles à déchiffrer sans la clé.
Générer 5 numéros gagnants uniques entre 1 et 100.
$winners = RSATool::getRandomIds(5, 100, 1, false);
// Résultat : [12, 45, 7, 89, 34]