そのような質問をしている場合は、おそらく、暗号化やセキュリティについて何も知らないことを意味します. あなたが言うように、「PHPSESSIDは十分に安全ではない」という理由で「長いランダム文字列」を生成しようとすると、おそらくカスタムで安全でない実装につながるでしょう。
ランダムな文字列を生成することはIMPOSSIBLEです。少なくとも現在のハードウェアではそうではありません。公正な疑似乱数ジェネレーターを近似することはできますが、これは教育目的でのみ役立ちます。
PHP のセッション ID 生成アルゴリズムはかなり効率的です。十分に安全ではないと思うなら、それを改善するために時間を浪費することになるでしょう。最大限のセキュリティを検討している場合 (たとえば、クライアント証明書を使用する場合) は、おそらく別の認証メカニズムを使用することをお勧めします。
Twitter、Facebook、または同様のトラフィックを持つ別のサイトなどの Web サイトがより長いセッション ID を使用している場合、それは (ある意味では) より安全だからではなく、競合を回避するためである可能性があります。
最後に、独自のアルゴリズムを作成せずに長いセッション ID が必要な場合は、次の PHP 構成ディレクティブを使用する必要があります。
session.hash_function
これは、PHP で知られている任意のハッシュ アルゴリズムを使用できます。
session.bits_per_characters
文字列を短くしたり長くしたりするために使用することもできます。これを行うと、文字列が長くなったり短くなったりする可能性がありますが、データは同じままであることに注意してください。表現が異なるだけです (基数 16、基数 32 など)。
追加情報:
カスタム ソース (ファイル) を使用してシードの長さを設定することで、エントロピーを増やすこともできます。
ini_set("session.hash_function", "sha512");
ini_set("session.bits_per_charater", 4); // 4 means hex
ini_set("session.entropy_file", "/dev/urandom");
ini_set("session.entropy_length", "512");