【发布时间】:2012-07-02 09:13:20
【问题描述】:
对于 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_;
【问题讨论】:
标签: security boost-random