self.crypto

グローバルの crypto プロパティは読み取り専用で、グローバルオブジェクトに関連付けられた Crypto オブジェクトを返します。このオブジェクトは、ウェブページが暗号に関連したサービスにアクセスできるようにします。

このプロパティ自体は読み取り専用ですが、そのメソッドすべて(加えて子オブジェクトのメソッドと SubtleCrypto)は読み取り専用ではありません。そのためポリフィルによる攻撃には脆弱です。

crypto はすべてのウィンドウで使用できますが、返される Crypto オブジェクトは安全でないコンテキストで使用できる機能は 1 つしかありません。 getRandomValues() メソッドです。一般的に、この API は安全なコンテキストでのみ使用する必要があります。

構文

Crypto インターフェイスのインスタンスで、一般用途の暗号技術と強力な乱数生成器を提供します。

この例では、 crypto プロパティを使用して getRandomValues() メソッドへアクセスします。

JavaScript

js
genRandomNumbers = function getRandomNumbers() {
  const array = new Uint32Array(10);
  crypto.getRandomValues(array);

  const randText = document.getElementById("myRandText");
  randText.textContent = "乱数: ";
  for (let i = 0; i < array.length; i++) {
    randText.textContent += array[i] + " ";
  }
};

HTML

html
<p id="myRandText">乱数:</p>
<button type="button" onClick="genRandomNumbers()">10 個の乱数を生成</button>

結果

仕様書

Specification
Web Cryptography API
# dom-windoworworkerglobalscope-crypto

ブラウザーの互換性

BCD tables only load in the browser

関連情報

  • Window グローバルオブジェクト
  • Crypto インターフェイス