Web Crypto API

Web Crypto API は、暗号化を使用してシステムを構築するためにスクリプトが暗号化プリミティブを使用することを可能にするインターフェイスです。

警告: Web Crypto API は、低レベルの暗号化プリミティブを多数提供しています。それらは非常に使い方を間違えやすく、そして関連する落とし穴は非常に微妙である場合もあります。

基本的な暗号機能を正しく使用していると仮定しても、安全な鍵管理と全体的なセキュリティシステムの設計を正しく理解するのは非常に難しく、一般的にセキュリティ分野のスペシャリストの領域です。

セキュリティシステムの設計と実装に誤りがあると、システムのセキュリティが完全に無効になる可能性があります。

自分のしていることが分からない場合は、おそらくこの API を使用すべきではないでしょう。

インターフェイス

一部のブラウザでは、Crypto というインターフェイスが明確に定義されておらず、暗号化されていなくても実装されていました。混乱を避けるために、このインタフェイスのメソッドとプロパティは Web Crypto API を実装しているブラウザから削除され、すべての Web Crypto API メソッドは新しいインターフェイス、つまり SubtleCrypto で利用可能になりました。Crypto.subtle プロパティはそれを実装しているオブジェクトへのアクセスを提供します

仕様

仕様書 ステータス コメント
Web Cryptography API 勧告 初期定義

ブラウザの互換性

Crypto

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
CryptoChrome 完全対応 11Edge 完全対応 12Firefox 完全対応 26IE 完全対応 11Opera 完全対応 15Safari 完全対応 6.1WebView Android 完全対応 ありChrome Android 完全対応 18Firefox Android 完全対応 26Opera Android 完全対応 14Safari iOS 完全対応 6.1Samsung Internet Android 完全対応 あり
getRandomValuesChrome 完全対応 11Edge 完全対応 12Firefox 完全対応 26IE 完全対応 11Opera 完全対応 15Safari 完全対応 6.1WebView Android 完全対応 ありChrome Android 完全対応 18Firefox Android 完全対応 26Opera Android 完全対応 14Safari iOS 完全対応 6.1Samsung Internet Android 完全対応 あり
subtle
実験的
Chrome 完全対応 37Edge 完全対応 12Firefox 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE 部分対応 11Opera 完全対応 24Safari 完全対応 10.1
完全対応 10.1
完全対応 7
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
WebView Android 完全対応 37Chrome Android 完全対応 37Firefox Android 完全対応 34
完全対応 34
未対応 32 — 34
無効
無効 From version 32 until version 34 (exclusive): this feature is behind the dom.webcrypto.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android 完全対応 24Safari iOS 完全対応 10.1
完全対応 10.1
完全対応 7
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Samsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応
部分対応  
部分対応
実験的。動作が変更される可能性があります。
実験的。動作が変更される可能性があります。
ユーザーが明示的にこの機能を有効にしなければなりません。
ユーザーが明示的にこの機能を有効にしなければなりません。
使用するには、ベンダー接頭辞または異なる名前が必要です。
使用するには、ベンダー接頭辞または異なる名前が必要です。