Je crée une table dans une base de données MySQL pour enregistrer des données de session, notamment session_id
. Quelle devrait être la longueur de la VARCHAR
pour stocker la chaîne session_id
?
Dépend de session.hash_function et session.hash_bits_per_character .
Consultez la page session_id pour plus d’informations.
Plus vous définissez haut session.hash_bits_per_character, plus votre .__ est court. session_id deviendra en utilisant plus de bits par caractère. Le possible les valeurs sont 4, 5 ou 6.
Lors de l'utilisation de sha-1 pour le hachage (en définissant Ini_set ('session.hash_function', 1), la chaîne de session suivante
Chaîne de 4 à 40 caractères
Chaîne de 5 à 32 caractères
Chaîne de 6 à 27 caractères
@sachleen answer n'est pas complet.
Des informations plus détaillées sur la longueur de l'identifiant de session sont décrites ici .
Résumé:
128-bit digest (MD5)
4 bits/char: 32 char SID
5 bits/char: 26 char SID
6 bits/char: 22 char SID
160-bit digest (SHA-1)
4 bits/char: 40 char SID
5 bits/char: 32 char SID
6 bits/char: 27 char SID
Et un exemple de regex pour vérifier l'identifiant de session:
preg_match('/^[a-zA-Z0-9,-]{22,40}$/', $sessionId)
Cela dépend des paramètres de configuration suivants: session.hash_function et session.hash_bits_per_character
Les longueurs d'ID de session plus courtes ont un risque plus élevé de collision, mais cela dépend aussi beaucoup de l'algorithme de génération d'identifiant. Compte tenu des paramètres par défaut, la longueur de l'ID de session devrait convenir à la plupart des applications. Pour les implémentations de sécurité supérieure, vous pouvez envisager de savoir comment PHP génère ses identifiants de session et vérifier s'il est sécurisé du point de vue cryptographique. Si ce n'est pas le cas, vous devriez alors lancer votre propre algorithme avec une source aléatoire de sécurité cryptographique.
Par la longueur normale d'installation PHP est toujours 26 (exmp: psprdaccghmmre1oo2eg0tnpe6)
Je ne sais pas où ma demande sera utilisée, puis je l'ai configurée comme suit: VARCHAR (127) Et espérons que ce sera formidable pour les utilisateurs inconnus de MySQL.