programing

PHP 세션 ID 문자열의 길이는 얼마입니까?

newstyles 2023. 8. 17. 20:58

PHP 세션 ID 문자열의 길이는 얼마입니까?

다음과 같은 세션 데이터를 저장하기 위해 MySQL 데이터베이스에 테이블을 만들고 있습니다.session_id길이는 얼마여야 합니까?VARCHAR저장하기 위해session_id끈?

세션에 따라 다릅니다.hash_function세션.hash_bits_per_character.

자세한 내용은 session_id 페이지를 참조하십시오.

세션을 더 높게 설정합니다.hash_bits_per_character는 문자당 더 많은 비트를 사용함으로써 session_id가 짧아집니다.가능한 값은 4, 5 또는 6입니다.

해시에 sha-1을 사용하는 경우(ini_set(의 세션을 설정하여).hash_function', 1) 세 개의 세션에서 다음 세션 문자열 길이를 생성합니다.hash_bits_per_문자 설정:

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)

이는 세션의 구성 설정에 따라 달라집니다.hash_function세션.hash_bits_per_문자

세션 ID 길이가 짧을수록 충돌 가능성이 높아지지만 이는 ID 생성 알고리즘에 따라 크게 달라집니다.기본 설정을 고려할 때 세션 ID의 길이는 대부분의 응용프로그램에 적합합니다.보안 수준이 높은 구현의 경우 PHP가 세션 ID를 생성하는 방법을 살펴보고 암호화 방식으로 안전한지 확인할 수 있습니다.그렇지 않다면 암호화된 안전한 무작위 소스를 사용하여 자신의 알고리즘을 롤해야 합니다.

일반적인 php 설치 길이는 항상 26입니다(예: psprdacc ghmmre1oo2eg0tnpe6).

PHP 7.1 기준으로 session_create_id()를 사용하는 경우 기본 세션 ID 길이는 32자이지만 사용자는 php.ini에서 이 기본값을 변경할 수 있습니다.

php.ini 설정 session.sid_length를 참조하십시오.

언급URL : https://stackoverflow.com/questions/12240922/what-is-the-length-of-a-php-session-id-string