X の数値/文字をランダムに生成するスクリプトを見つけました。ローカルホストでは問題なく動作しますが、スクリプトを VPS にアップロードすると動作しません。
次のエラーが表示されます。
Fatal error: Call to undefined function openssl_random_pseudo_bytes()
それはコードのこの部分です:
function crypto_rand_secure($min, $max) {
$range = $max - $min;
if ($range < 0) return $min; // not so random...
$log = log($range, 2);
$bytes = (int) ($log / 8) + 1; // length in bytes
$bits = (int) $log + 1; // length in bits
$filter = (int) (1 << $bits) - 1; // set all lower bits to 1
do {
$rnd = hexdec(bin2hex(openssl_random_pseudo_bytes($bytes)));
$rnd = $rnd & $filter; // discard irrelevant bits
} while ($rnd >= $range);
return $min + $rnd;
}
同じ問題を含むスタックオーバーフローの投稿を見つけました。ただし、モジュールをインストールする必要がありました。これを行う方法はわかりませんが、VPS の WHM でこれを見つけました。
ホーム »ソフトウェア »モジュールインストーラー
Perl モジュールを選択してopensslを検索すると、多くの結果が得られます。これらのいずれかをインストールしましたが、デフォルトで 1 つインストールしました。
インストールされているopensslモジュールは次のとおりです。
クリプト::OpenSSL::RSA
暗号::OpenSSL::ランダム
それでも...自分のウェブサイトで同じエラーが発生します。解決策はありますか?前もって感謝します。