問題タブ [window.crypto]
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.
javascript - IE11 で TextEncoder を使用するにはどうすればよいですか?
文字列をハッシュしようとしています。しかし、IE11 と Safari の関数 TextEncoder の代わりになるものは何ですか?
hex は mozilla から取得した関数です
https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest
x509 - window.crypto が生成した秘密鍵をブラウザのキーストアに保存しますか?
次のワークフローを実装しようとしています。
- window.crypto を使用してブラウザで秘密鍵を生成する
- ブラウザーで PKCS10 証明書署名要求を作成する
- PKCS10 をサーバーに送信する
- サーバーはリクエストに署名し、x509 証明書を PEM 形式で返します
- ブラウザは自身の証明書を保存します
ブラウザで keygen タグを使用し、pkcs10 の代わりに SPKAC を使用しても、同じことが既に機能しています。ただし、ブラウザは返された証明書を保存せず、保存したいだけです。手動で証明書をブラウザーにインポートしようとすると、「証明書の秘密鍵が見つからないか無効です」というメッセージが表示されました。window.crypto.generateKey() によって生成された秘密鍵がブラウザのキーストアに保存されていないと思われます。キーストアに格納されている秘密鍵を取得するには?
最初の 2 つのステップの実装は、 http://blog.engelke.com/2014/08/23/public-key-cryptography-in-the-browser/に基づいています。
更新: 一部のブラウザーは OS キーストアを使用するため、別の方法でキーを OS キーストアに保存する可能性も検討しています。これまでにわかったこと:
この質問によると、Java は使用できません: Tell Java to use Windows keystore
Windows では、ActiveX コントロールを使用できます。
概要: X509 証明書を生成して有意義に使用するための標準的なクロスブラウザおよびクロス OS の方法は見つかりませんでした。これを行う方法がない組み合わせ (Windows 以外の OS での新しい chrome バージョン (keygen サポートの削除)) があります。
javascript - スペースを追加してテストに失敗するJavascriptパスワードジェネレーター
以下に準拠したパスワードを作成するパスワードジェネレーターを構築しようとしています。
- 最小 8 文字、最大 40 文字
- 大文字、小文字、数字、記号を少なくとも 1 つ含める必要があります
私は Math.random を選択しないようにしています。私は crypto オプションを好みます。
これを機能させるために多くの記事を読んできましたが、次の問題があります。
出力文字列の末尾にランダム スペースが発生することがよくあります。
出力値が最小 8 文字ルールに準拠していない場合があります。
おそらく追加の if ステートメントが多すぎて二重チェックをしていることに気づきましたが、どこが間違っているのかを確認するのに苦労しています。
これは別のシステムに入る予定なので、可能な限りモジュール化して機能的に作成しています。以下の大きなスニペットについてお詫び申し上げます。jsfiddle.