PHP 会话 ID 字符串的长度是多少?
我正在MySQL数据库中制作一个表来保存一些会话数据,包括.存储字符串的长度应该是多少?session_id
VARCHAR
session_id
我正在MySQL数据库中制作一个表来保存一些会话数据,包括.存储字符串的长度应该是多少?session_id
VARCHAR
session_id
取决于session.hash_function和session.hash_bits_per_character。
有关详细信息,请查看session_id页面。
设置session.hash_bits_per_character越高,每个字符使用更多的位,session_id就会越短。可能的值为 4、5 或 6。
使用 sha-1 进行哈希处理时(通过设置 ini_set('session.hash_function', 1),以下三个session.hash_bits_per_character设置会生成以下会话字符串长度:
4 - 40 个字符的字符串
5 - 32 个字符的字符串
6 - 27 个字符的字符串
@sachleen答案并不完整。
此处介绍了有关会话 ID 长度的更多详细信息。
总结:
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
和示例正则表达式来检查会话 ID:
preg_match('/^[a-zA-Z0-9,-]{22,40}$/', $sessionId)