2

具体的な解決策ではないにしても、私の問題を説明しようとしますが、少なくとも理論的な考えで十分です。

私は乱数ジェネレーターを書いています-RNG(Linux(Ubuntu)サーバーでのみ実行されます)およびこのコードは認定されます(コード/プログラムはいつでもsha1/md5ハッシュを使用してチェックでき、認定されたバージョンまたは何かが必要ですそのように)そのため、これ以上変更を加えることができなくなります。基本的に、mt_rand関数を使用して値といくつかのサーバー パラメーターを生成しmicrotime、シード ( mt_srand) に使用します。コードが認定に十分なものである場合は、まだノーではありませんが、それは主要な問題ではありません。認証会社は、ソースと関数のバイナリコードを提供する必要があると言いましたmt_rand(おそらくmt_srandも)。では、これを最も簡単で正しい方法で行うにはどうすればよいでしょうか。

で mt_rand 関数が見つかりました。php_src_files\ext\standard\rand.c この拡張機能をコンパイルして、インストール済みの PHP に拡張機能としてロードする必要がありますか?

私はphpとLinuxを初めて使用するわけではありませんが、それを正しく行う方法を知りたいので、このRNGを別のLinuxサーバーに展開する際の頭痛が少なくなります。

前もって感謝します。

更新:回答ありがとうございます。私が言ったように、私はRNGの書き方については尋ねていませんが、認証のためにphpソースの一部を抽出/コンパイル/準備/使用する方法については尋ねていません...

4

3 に答える 3

2

/dev/randomLinux では、環境ノイズから高品質のランダム ビットを生成するから読み取ることができます。したがって、これはあなたに役立つかもしれません:

function dev_random_integer($min, $max)
{
    $stream = fopen('/dev/random', 'r');
    $randomBinary = fread($stream, 4); // read 4 bytes (32 bit)
    fclose($stream);
    $randomInt = unpack('l', $randomBinary); // convert to 32 bit integer

    $range = $max - $min + 1;
    return $min + ($randomInt % $range);
}

編集:その正確なコードを使用しないでください。以下のコメントを見てください。

于 2013-01-25T12:33:20.087 に答える
0

php-cliさまざまなツールに対してチェックするバイナリ ストリームを生成するために使用できる、PHP ソース全体とバイナリ PHP パッケージ ( ) を提供する必要があります。(認定プロバイダーがサポートしているオペレーティング システムを確認することもできます)。

于 2013-01-25T12:47:24.157 に答える