問題タブ [rngcryptoserviceprovider]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - RNGCryptoServiceProvider GetBytes() - 戻り値を制限する方法は?
暗号的に強力なランダム文字の文字列を返すこのメソッドがあります。
最初にGetBytes()
、バイト配列に 0 から 255 までの値を設定します。
{byte value} % {length of character set}
次に、文字セットから文字番号を選択して、戻り文字列を作成します。
問題は、ほとんどの文字セットの長さが 256 で割り切れないため、結果が一部の文字に偏ってしまうことです。たとえば、文字セットが 8、16、または 32 文字の長さの場合、残りは 0 で問題ありません。
GetBytes()
だから私は考えていました-文字セットの長さが最大値で均等に割り切れるように、返される値を制限できますか? たとえば、文字セットの長さが 62 の場合、最大値は 247 にする必要があります。
もちろん、一度に 1 バイトだけ取得することもできます。値が高すぎる場合は、別のバイトを取得することもできます。しかし、それはあまりエレガントではありません。
linux - RNGCryptoServiceProvider は /dev/random から取得します
Linux から実行する場合、RNGCryptoServiceProvider を /dev/random プールから読み取ることはできますか? これは私に与えられた要件です。私はこれが初めてで、これを調べてみました。申し訳ありませんが、これに関する情報を見つけることができません。