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
'programing' 카테고리의 다른 글
데이터베이스 테이블에서 오류를 확인할 수 없습니다. (0) | 2023.08.17 |
---|---|
어떻게 하면 텍스트가 한 줄 이상 차지하는 것을 막을 수 있습니까? (0) | 2023.08.17 |
IE9 jQuery AJAX with CORS에서 "Access is denied"를 반환합니다. (0) | 2023.08.12 |
멀티스레드에서 스프링 트랜잭션을 사용하는 방법 (0) | 2023.08.12 |
가변 함수 인수 기본값에 대한 유용한 사용? (0) | 2023.08.12 |