对于 C++ Web 服务器,我必须生成会话 ID。我想到了使用某种随机数和哈希值,以及会话的初始 IP 地址和时间戳。
这会产生一个合理的、不可猜测的 ID 吗?什么是好的随机生成器算法(由 boost-random 实现的最可取的算法)?
亲切的问候托尔斯滕
我的解决方案现在看起来像:
std::string secure_session_generator::operator()( const char* /* network_connection_name */ )
{
std::stringstream out;
out << std::hex << distribution_( generator_ );
return out.str();
}
成员是默认构造的:
boost::random::random_device generator_;
boost::random::uniform_int_distribution< boost::uint_least64_t > distribution_;