RAND_bytes 的文档声称,如果生成的随机字节是可预测的,该函数可能会返回错误。我的问题是此类错误发生的频率如何?
可以在有限循环中调用 RAND_bytes (例如 5 次尝试),然后抛出异常是解决此问题的合理方法,或多或少像这样:
unsigned char random_bytes[4];
uint8_t attempts = 0;
while(RAND_bytes(random_bytes,sizeof(random_bytes)) != 1 && ++attempts != 5 ) { }
if( attempts == 5)
{
throw std::runtime_error("random bytes too predictable after multiple attempts");
}
Run Code Online (Sandbox Code Playgroud)
或者这个循环很愚蠢,我应该在第一次尝试后抛出?
谢谢。
| 归档时间: |
|
| 查看次数: |
2161 次 |
| 最近记录: |