Skip to content

Commit

Permalink
2022/05/10 時点の英語版に同期
Browse files Browse the repository at this point in the history
  • Loading branch information
mfuji09 committed May 14, 2022
1 parent 9a806fb commit 944caaf
Showing 1 changed file with 8 additions and 10 deletions.
18 changes: 8 additions & 10 deletions files/ja/web/api/crypto/getrandomvalues/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ translation_of: Web/API/Crypto/getRandomValues

十分な性能を保証するために、実装は真に乱数発生器を使用しているのではないものの、十分なエントロピーを有する*シード値*を用いた擬似乱数発生器を使用しています。
擬似乱数発生器アルゴリズム (PRNG) は、{{Glossary("user agent", "ユーザーエージェント")}}によって異なる可能性がありますが、暗号化の目的には適しています。
実装にあたっては、システムレベルのエントロピー源のように、十分なエントロピーを持つシード値を使う必要があります。

`getRandomValues()``Crypto` インターフェイスで安全なコンテキスト外から使用することができる唯一のメンバーです。

Expand All @@ -38,7 +37,7 @@ getRandomValues(typedArray)
### 引数

- `typedArray`
- : 整数値ベースの {{jsxref("TypedArray")}} です。 {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}}, {{jsxref("Uint32Array")}} の何れかです(ただし `Float32Array``Float64Array` では**ありません**)。
- : 整数値ベースの {{jsxref("TypedArray")}} です。 {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Uint8ClampedArray")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}}, {{jsxref("Uint32Array")}}, {{jsxref("BigInt64Array")}}, {{jsxref("BigUint64Array")}} の何れかです(ただし `Float32Array``Float64Array` では**ありません**)。
配列内のすべての要素は乱数で上書きされます。

### 返値
Expand All @@ -49,26 +48,25 @@ getRandomValues(typedArray)
### 例外

- `QuotaExceededError`{{domxref("DOMException")}}
- : リクエストした長さが 65,536 バイトを超えた場合に発生します。
- : `typedArray` の {{jsxref("TypedArray.byteLength", "byteLength")}} が 65,536 バイトを超えた場合に発生します。

## 使用上の注意

暗号鍵を生成するために `getRandomValues()` 使用しないでください。代わりに {{domxref("SubtleCrypto.generateKey", "generateKey()")}} メソッドを使用してください。
これにはいくつかの理由があります。例えば、 `getRandomValues()` が安全なコンテキストで動作することが保証されていないことなどです。

ウェブ暗号仕様書では、エントロピーの最小値は規定されていません。
その代わりに、ユーザーエージェントは乱数を生成する際に、ユーザーエージェント自身に組み込まれた、よく定義された効率的な擬似乱数発生器を用いて、可能な限り最高のエントロピーを提供することが求められていますが、プラットフォーム固有の乱数関数、 Unix の `/dev/urandom` デバイス、または他のランダムまたは擬似乱数データのソースなど、外部の擬似乱数ソースから取得したシード値が用いられます。
その代わり、ユーザーエージェントは乱数を生成する際に、ユーザーエージェント自身に組み込まれた、よく定義された効率的な擬似乱数発生器を用いて、可能な限り最高のエントロピーを提供することが求められていますが、プラットフォーム固有の乱数関数、 Unix の `/dev/urandom` デバイス、または他のランダムまたは擬似乱数データのソースなど、外部の擬似乱数ソースから取得したシード値が用いられます。

##

```js
/* window.crypto.getRandomValues が利用可能であると想定 */

var array = new Uint32Array(10);
const array = new Uint32Array(10);
self.crypto.getRandomValues(array);

console.log("Your lucky numbers:");for (var i = 0; i < array.length; i++) {
console.log(array[i]);
console.log("Your lucky numbers:");
for (const num of array) {
console.log(num);
}
```

Expand All @@ -83,5 +81,5 @@ console.log("Your lucky numbers:");for (var i = 0; i < array.length; i++) {
## 関連情報

- [ウェブ暗号 API](/ja/docs/Web/API/Web_Crypto_API)
- {{domxref("Crypto")}} オブジェクトを取得する {{ domxref("Window.crypto") }}。
- {{domxref("Crypto")}} オブジェクトを取得する {{domxref("Window.crypto")}}。
- {{jsxref("Math.random")}} 暗号学的に安全ではない乱数値。

0 comments on commit 944caaf

Please sign in to comment.