window.crypto

Window.crypto 読み取り専用プロパティは、グローバルオブジェクトに関連付けられた Crypto オブジェクトを返します。このオブジェクトは、ウェブページが暗号に関連したサービスにアクセスできるようにします。 Window.crypto プロパティ自体は読み取り専用ですが、そのメソッドすべて(加えて子オブジェクトのメソッドと SubtleCrypto )は読み取り専用では有りません。故に polyfill による攻撃に対し脆弱です。

構文

var cryptoObj = window.crypto || window.msCrypto; // for IE 11

Window.crypto プロパティを使用して getRandomValues() メソッドにアクセスする

JavaScript

genRandomNumbers = function getRandomNumbers() {
  var array = new Uint32Array(10);
  window.crypto.getRandomValues(array);
 
  var randText = document.getElementById("myRandText");
  randText.innerHTML = "The random numbers are: "
  for (var i = 0; i < array.length; i++) {
    randText.innerHTML += array[i] + " ";
  }
}

HTML

<p id="myRandText">The random numbers are: </p>
<button type="button" onClick='genRandomNumbers()'>Generate 10 random numbers</button>

実行結果

仕様

仕様書 策定状況 備考
Web Cryptography API
Window.crypto の定義
勧告 初期定義

ブラウザーの実装状況

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
cryptoChrome 完全対応 37Edge 完全対応 12Firefox 完全対応 34IE 完全対応 11
接頭辞付き
完全対応 11
接頭辞付き
接頭辞付き ms のベンダー接頭辞が必要
Opera 完全対応 24Safari 完全対応 6.1WebView Android 完全対応 37Chrome Android 完全対応 37Firefox Android 完全対応 34Opera Android 完全対応 24Safari iOS 完全対応 6.1Samsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応
使用するには、ベンダー接頭辞または異なる名前が必要です。
使用するには、ベンダー接頭辞または異なる名前が必要です。

関連情報

  • Window グローバルオブジェクト