web-dev-qa-db-fra.com

Comment générer un jeton aléatoire?

J'essaie de générer un jeton en utilisant JCryptCipherCrypto et je voulais générer une chaîne qui contiendrait a-z, A-Z, 0-9 et sa longueur devait être de 16 caractères.

Je l'ai fait:

$crypto = new JCryptCipherCrypto;
$key = $crypto->generateKey();

Sa méthode ne fonctionne pas ou peut-être que je fais quelque chose de mal :(

Quelqu'un peut-il me dire un meilleur moyen de générer une chaîne de jetons ou de m'expliquer ce qui me manque?

2
Joomler

J'ai utilisé cette méthode pour générer des jetons

function generateToken($length)
{
    jimport('joomla.user.helper');
    $token = JUserHelper::genRandomPassword($length);

    return $token;
}

Le principal avantage de cette méthode est que je peux générer une chaîne aléatoire allant jusqu'à 32 caractères.

0
Joomler

Ce résultat est exactement ce que vous voulez. Vous avez maintenant une clé pour chiffrer les données. Et plus tard, vous pourrez le déchiffrer avec la même clé.

// Test string
$str = 'Lorem ipsum...';

// Get key
$crypto = new JCryptCipherCrypto;
$key = $crypto->generateKey();

// Crypt it. Nobody can read it without key
$crypted = $crypto->encrypt($str, $key);

// Decrypt crypted string
$decrypted = $crypto->decrypt($crypted, $key);
echo $decrypted;

SORTIE

Lorem ipsum...
1
Rene Korss