具体的には、暗号化された安全な乱数を、0からいくつかの番号xまで生成したいだけです。OpenSSLのbn_rand_rangeに相当するJavaはありますか?
OpenSSLでは、これは機能bn_range
で行われます。
自分(2 ビット 0から番号を生成する)JavaのBigInteger(int bits, Random r)
コンストラクタを使用して実装することができます。しかし、可能であれば、セキュリティのために、より良いテストアルゴリズムを使用したいと思います。
Javaでこれを行う標準的な方法はありますか?
P.S.私は実際にAndroidを使用していますが、私は標準のJavaでそれを行う方法を知らない。
編集:xは、BigInteger
として格納された大きな整数です。
javaのbn_rand_rangeの実装ではすでにSecureRandomを使用しています。問題は、bn_rand_rangeではなくbn_rand_rangeのように動作する関数の実装があることです。 – diedthreetimes
bn_rand_rangeを模倣するコードを表示するための回答を更新しました。あなたは0とXの間の数字を見つけることに言及したので、私はnextIntを使用しました。 XとYの間の範囲が必要な場合は、 'random.nextInt(Y-X)+ X'を使用します。 – amccormack
申し訳ありませんが、XはintではなくBigIntegerです。さもなければあなたのアプローチはまさに私が探しているものになります。 – diedthreetimes