2010-11-16 4 views
7

Próbuję upewnić się, że używam sha512 do mieszania sesji. Kiedy wydrukować moje algos uzyskaćCzy mogę sprawdzić, jakie jest używane mieszanie sesji algo php?

Array 
(
[0] => md2 
[1] => md4 
[2] => md5 
[3] => sha1 
[4] => sha224 
[5] => sha256 
[6] => sha384 
[7] => sha512 
[8] => ripemd128 
etc.... 
) 

Więc w php.ini ustawić go jak,

session.hash_function = 7 

Jedynym powodem Jestem zdezorientowany, że w pliku ini to wymienia systemy mieszaja inaczej niż to, co php drukuje, na przykład 0 jako md5, a nie md2.

; Select a hash function 
; 0: MD5 (128 bits) 
; 1: SHA-1 (160 bits) 

Czy to tylko domyślne schematy mieszania dla starszych wersji php?

Odpowiedz

6

0 i 1 są tylko wartości liczbowe, które są actually documented:

session.hash_function pozwala określić algorytm mieszania używany do generowania identyfikatorów sesji. "0" oznacza MD5 (128 bitów) i "1" oznacza SHA-1 (160 bitów).

Jeśli chcesz wykorzystać inne algorytmy:

Od PHP 5.3.0 możliwe jest również, aby określić dowolny z algorytmów pod warunkiem przez rozszerzenie skrótu (jeśli jest dostępny ) jak sha512 lub jacuzzi. Pełna lista obsługiwanych algorytmów można uzyskać za pomocą funkcji hash_algos() .

Przyznaję, że nie jest to jasno wyrażone, ale definicja dyrektywy mówi, że jej argument jest typu mixed. Oczekuje liczby całkowitej (tylko dla MD5 i SHA-1) lub nazwy (string) algorytmu zwróconego przez hash_algos(). (Nawiasem mówiąc, oznacza to również, że istnieją dwa sposoby określenia MD5 i SHA-1.) Deweloperzy zmienili zdanie, gdy dodano nowe algorytmy, ale zachowali kompatybilność wsteczną.

Próbowałem ten kod i mam ogromny Session ID:

ini_set('session.hash_function', 'whirlpool'); 
+0

taak działa, że ​​na pewno się sposób już session_id, oczywiście metoda php.ini nie działa. Więc możesz ustawić to w konfiguracji? – Brian

+0

@Brian Perin - Próbowałem wyjaśnić, że trzeba użyć ciągu; klucze tablicy zwrócone przez hash_algos() są bez znaczenia. –

+0

Gotcha thankyou – Brian

2

hash_algos() zwraca tablicę łańcuchów wszystkich dostępnych algorytmów i dlatego nie nadaje się jako argument dla ustanawiania sesji ini”. funkcja mieszająca ". Po prostu spróbuj ustawić preferowany algorytm jako ciąg zamiast "0" lub "1".

2

ustawiania funkcji skrótu jak działa łańcuch

session.hash_function = sha512