RandRange(number1, number2[, algorithm])
履歴
- ColdFusion(2023 リリース)アップデート 8 および ColdFusion(2021 リリース)アップデート 14:デフォルトのアルゴリズムが CFMX_COMPAT から SHA1PRNG に変更されました。
- ColdFusion MX 7:algorithm パラメーターが追加されました。
関連項目
パラメーター
パラメーター |
説明 |
---|---|
number1、number2 |
整数です。数値が -2,147,483,648~2,147,483,647 の範囲に含まれない場合、ColdFusion ではエラーが発生します。 |
algorithm |
(オプション)乱数を生成するために使用するアルゴリズムです。ColdFusion では、次のアルゴリズムを使用する暗号ライブラリがインストールされます。
|
使用方法
number1 および number2 パラメーターが正または負の非常に大きな値である場合、得られる結果のランダム性が低くなる可能性があります。この問題を避けるには、-1,000,000,000~1,000,000,000 の範囲に含まれない数値を指定しないようにします。ColdFusion では、JCE(Java Cryptography Extension)を使用し、Sun JCE デフォルトセキュリティプロバイダーを含む Sun Java 1.4.2 ランタイムがインストールされます。このプロバイダーには、「パラメーター」節で示したアルゴリズム(デフォルトのアルゴリズムを除く)が含まれています。JCE フレームワークには、他のプロバイダーを実装するための機能も含まれています。ただし、当社ではサードパーティのセキュリティプロバイダーに対するテクニカルサポートは提供していません。
例
次の例では、3 つのアルゴリズムをすべて使用して、-100000~100000 の範囲の乱数を生成しています。
<cfscript> num1 = -100000; num2 = 100000; randAlgorithmArray = ["CFMX_COMPAT", "SHA1PRNG", "IBMSecureRandom"]; for(index = 1; index <= arrayLen(randAlgorithmArray); index++) { WriteOutput("#randAlgorithmArray[index]# を使用した場合の #num1#~#num2# の範囲の乱数:" & randRange(num1, num2, randAlgorithmArray[index]) & "<br/>"); } </cfscript>
出力
CFMX_COMPAT を使用した場合の -100000~100000 の範囲の乱数:73552
SHA1PRNG を使用した場合の -100000~100000 の範囲の乱数:59144
IBMSecureRandom を使用した場合の -100000~100000 の範囲の乱数:28588