Randomize(number[, algorithm])
履歴
- ColdFusion(2023 リリース)アップデート 8 および ColdFusion(2021 リリース)アップデート 14:デフォルトのアルゴリズムが CFMX_COMPAT から SHA1PRNG に変更されました。
- ColdFusion MX 7:algorithm パラメーターが追加されました。
関連項目
パラメーター
パラメーター |
説明 |
---|---|
number |
整数です。数値が -2,147,483,648~-2,147,483,647 の範囲に含まれない場合、ColdFusion ではエラーが発生します。 |
algorithm |
(オプション)シード値の生成に使用するアルゴリズムです。ColdFusion では、次のアルゴリズムを使用する暗号ライブラリがインストールされます。
|
使用方法
乱数ジェネレーターのシードを設定するには、Rand を呼び出す前に、この関数を呼び出します。乱数ジェネレーターのシードを設定すると、Rand 関数は常に同じ擬似乱数列を生成します。この動作は、一貫したパターンを再現する必要がある場合に役立ちます。標準版では、デフォルトのアルゴリズム以外のすべてのアルゴリズムに対して JCE(Java Cryptography Extension)が使用され、Sun JCE のデフォルトセキュリティプロバイダーを含む Sun Java ランタイムがインストールされます。このプロバイダーには、「パラメーター」節で示したアルゴリズムが含まれています。JCE フレームワークには、他のプロバイダーの実装を使用するための機能も含まれています。ただし、アドビでは、サードパーティのセキュリティプロバイダーに対するテクニカルサポートは提供していません。エンタープライズ版の ColdFusion では、RSA BSafe Crypto-J ライブラリもインストールされます。このプロバイダーでは、FIPS186PRNG、MD5PRNG、DummyPRNG、OBFPRNG の各アルゴリズムが追加されます。DummyPRNG は常に 0 を返します。
メモ:特定の初期シードに対して反復可能な数のパターンを取得するには、エンタープライズ版およびデベロッパー版で次のように JVM 引数を使用して JSAFE を無効にする必要があります。 Dcoldfusion.disablejsafe=true |
例
次の例では、Randomize 関数を呼び出して乱数ジェネレーターのシードを設定し、10 個の乱数を生成します。
<cfset randomize(12345)> <! --- この行を削除すると、乱数は毎回異なります ---> <cfloop index="i" from="1" to="10"> <cfoutput>#rand()#</cfoutput><br> </cfloop>