Sto creando una tabella in un database MySQL per salvare alcuni dati di sessione, incluso session_id
. Quale dovrebbe essere la lunghezza dello VARCHAR
per memorizzare la stringa session_id
?Qual è la lunghezza di una stringa ID di sessione PHP?
risposta
Dipende session.hash_function e session.hash_bits_per_character.
controllare la pagina session_id per maggiori informazioni.
Più alto si imposta session.hash_bits_per_character più breve tuo session_id diventerà utilizzando più bit per carattere. I possibili valori sono 4, 5 o 6.
Quando si utilizza SHA-1 per l'hashing (modificando ini_set ('session.hash_function', 1) la seguente stringa sessione lunghezze sono prodotte dai tre sessione. hash_bits_per_character impostazioni:
4 - 40 stringa di caratteri
5 - 32 stringa di caratteri
6 - 27 stringa di caratteri
Dipende da queste impostazioni di configurazione: session.hash_function e session.hash_bits_per_character
Shorter sessione lunghezze d'identità hanno la maggiore probabilità di collisione, ma questo dipende anche molto dal algoritmo di generazione ID. Date le impostazioni predefinite, la lunghezza dell'ID di sessione dovrebbe essere appropriata per la maggior parte delle applicazioni. Per implementazioni di maggiore sicurezza, puoi considerare come PHP genera i suoi ID di sessione e verificare se è crittograficamente sicuro. In caso contrario, è necessario eseguire il rollover del proprio algoritmo con una fonte di casualità crittograficamente sicura.
La probabilità di collisione è totalmente determinato dalla funzione di hash, entropia utilizzato, e il volume di traffico. L'uso di una funzione di hashing più sicura produrrà una stringa ID di sessione più ampia, quindi se questo è ciò che intendevi per lunghezze di ID di sessione più brevi con una maggiore probabilità di collisione, sei corretto, ma abbrevia la lunghezza utilizzando una maggiore profondità di bit per carattere non avrà alcun effetto. – Jason
L'ID di sessione di 128 caratteri è un overkill per un'applicazione Web generica? – TheFrost
La risposta @sachleen non è completa.
Ulteriori informazioni sulla lunghezza dell'ID di sessione sono descritte here.
Sommario:
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
E regex campione per controllare Session ID:
preg_match('/^[a-zA-Z0-9,-]{22,40}$/', $sessionId)
questo è stato utile per me !!! – SirJ
Ottima risposta, il pezzo mancante di un puzzle per me. –
non so dove verrà utilizzata la mia domanda di allora ho impostato come: VARCHAR (127) e spero che sia perfetto per gli utenti MySQL non conosciuti.
Se per sconosciuto vuoi dire sconosciuto, potresti prendere in considerazione l'impostazione come TESTO che si contrarrà e si espanderà secondo necessità, altrimenti avrai un sacco di spazio vuoto nella tua tabella, e anche così, potrebbe fallire con un valore di lunghezza di 128 . – Gustavo
@GustavoPinent VARCHAR è più veloce di TEXT. –
@TichomirMitkov sì, dovrà decidere tra TESTO sicuro e flessibile e VARCHAR veloce – Gustavo
Entro la normale lunghezza di installazione PHP è sempre 26 (ExMP: psprdaccghmmre1oo2eg0tnpe6)
- 1. Qual è la lunghezza massima di una stringa in PHP?
- 2. Qual è la lunghezza di output di PHP crypt()?
- 3. Qual è la lunghezza massima di una stringa Python?
- 4. Lunghezza ID sessione in Tomcat
- 5. facebook lunghezza stringa id
- 6. È possibile creare un ID di sessione PHP?
- 7. Qual è la lunghezza massima di una query di mongodb?
- 8. ID sessione di rigenerazione
- 9. Qual è la lunghezza massima possibile di una stringa di query?
- 10. determinare la lunghezza di una stringa letterale
- 11. Qual è la lunghezza ideale di una slug URL
- 12. Qual è la lunghezza in byte di una NSString?
- 13. Qual è la lunghezza massima di una ListProperty?
- 14. Qual è la migliore sessione save_handler per PHP e perché?
- 15. PHP: qual è la lunghezza totale di una variabile globale post?
- 16. Qual è la lunghezza di una stringa codificata in un ByteBuffer
- 17. Qual è la lunghezza di una stringa con hash con SHA512?
- 18. Qual è la dimensione di un ID sessione di ASP.NET 3.5?
- 19. ID sessione PHP cambia tra le pagine
- 20. Qual è la lunghezza massima di un nome DNS
- 21. Qual è la lunghezza e il tipo di ID transazione PayPal (txn_id)?
- 22. Perché la lunghezza del byte di una stringa è più lunga della lunghezza?
- 23. Qual è l'approccio consigliato per la memorizzazione di un ID sessione
- 24. Qual è la lunghezza massima di html testo
- 25. Lunghezza di una stringa in pixel
- 26. Qual è la lunghezza massima di un parametro stringa su Stored procedure?
- 27. Qual è il limite di dimensioni di una variabile Php quando si memorizza una stringa?
- 28. Distruggere veramente una sessione PHP?
- 29. Qual è la sintassi di PHP per verificare "is not null" o una stringa vuota?
- 30. id di sessione cookie nel GWT RPC
Quindi 40 caratteri sono un set sicuro, e se voglio salvare alcuni byte, devo controllare la configurazione php, giusto? – Gustavo
Controllare php.ini per vedere quali sono le impostazioni. 40 caratteri è il risultato della funzione hash SHA-1 e di 4 bit per carattere. Puoi fare 'echo strlen (session_id());' per vedere la lunghezza e rendere il campo del tuo database di conseguenza. – sachleen
Per riferimento, la lunghezza session_id sarà anche 32 se si utilizza la funzione hash MD5 e 4 bit hash per carattere. Questo mi ha fatto strappare i capelli per alcune ore oggi. – sevenseacat