PHPのSession IDの長さを変更する
PHPのセッションIDの生成方法、長さを変えるにはphp.iniのsession.hash_bits_per_characterを変更する。
php.iniには以下のような説明が書いてある。
; Define how many bits are stored in each character when converting
; the binary hash data to something readable.
;
; 4 bits: 0-9, a-f
; 5 bits: 0-9, a-v
; 6 bits: 0-9, a-z, A-Z, "-", ","
session.hash_bits_per_character = 4
session.hash_bits_per_characterの値とセッションID文字数の対応
| session.hash_bits_per_character | 値 | 組み合わせ |
|---|---|---|
| 4 | 32 | 16^32=3.40282367e38 |
| 5 | 26 | 32^26=1.36112947e39 |
| 6 | 22 | 64^22=5.44451787e39 |
組み合わせが多ければ多いほどブルートフォースに強いことを意味します。
その点では、どれも同じような強度です。
テストスクリプト