4

RAND_bytes のドキュメントでは、生成されたランダム バイトが予測可能な場合、関数はエラーを返す可能性があると主張しています。私の質問は、そのようなエラーの頻度はどれくらいですか?

有限ループ (たとえば 5 回の試行) で RAND_bytes を呼び出してから例外をスローすることは、多かれ少なかれ次のように、この問題を回避する合理的なアプローチになります。

    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");
    }

または、このループはばかげているので、最初の試行後にスローする必要がありますか?

ありがとう。

4

1 に答える 1