問題タブ [digest]
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.
jquery - カスタムダイジェスト認証
- ダイジェスト認証用のHttpモジュールを作成しました。サーバーでは、ページを要求するたびに、このモジュールは「認証」ヘッダーの存在を確認します。このヘッダーが存在しない場合、ユーザーは401メッセージを受け取ります。
- クライアント側では、ダイジェスト認証にjQueryプラグインを使用しています。
知っておくと、私には流れるような機能があります。
- ユーザーは、2つの入力フィールドにユーザー名とパスワードを入力します(ブラウザーのHttp認証プロンプトではありません)。
- jQueryを使用して、サーバー上の保護されたページにajax呼び出しを行っています。このajax呼び出しは、DigestHttpプロトコルに基づいています。つまり、username、noncecount、clientnonce、MD5ハッシュパスワードなどを使用して認証ヘッダーを追加しているということです。
- 次に、200メッセージのサーバー応答:)
ユーザーが別のページに移動すると、そのリクエストに認証ヘッダーがないため、「401アクセスが拒否されました」というメッセージが表示されます。そしてそれが問題です。
- 標準のダイジェストプロトコルを使用する場合、ブラウザはすべてのリクエストに認証ヘッダーを自動的に追加しますが、この問題は発生しません。ただし、ブラウザの[Http認証]ダイアログでユーザーが自分の資格情報を入力する必要がないため、この方法で使用しています。カスタムダイアログが必要です。jQuery DigestJプラグインでは、ヘッダーは「authorization」ではなく「authenticate」と呼ばれ、プロトコルはDigestではなくDigestJと呼ばれます。そうすれば、サーバーが401メッセージで応答したときに、資格情報を入力するためのブラウザーのHttpダイアログが表示されません。フォーム認証は使用できません。
- jQueryセッションプラグインを使用してクライアント側にユーザークレデンシャルを保存できますが、リクエストごとにHttpヘッダーを変更するにはどうすればよいですか?'authenticate'ヘッダーを追加し、セッションから資格情報を挿入する必要があります。
ruby - ダイジェストのベース36表現
任意の文字列を取得し、それをハッシュ関数(MD5など)で実行して、結果のダイジェストをbase-36で解釈できるようにしたいと思います。
Rubyにはすでにダイジェストライブラリが存在することは知っていますが、私が知る限り、ダイジェストの生のバイトを取得することはできません。to_s
関数は、もちろんベース16であるにマップされますhexdigest
。
java - メッセージ ダイジェストから MD5 文字列を取得する
どのように機能するかは理解していますが、MD5 を文字列として出力したい場合はどうすればよいですか?
string - テキスト文字列からの SHA1 ダイジェストの検証
テキスト文字列の base64 での SHA1 ダイジェストの検証に問題があります。
ファイル (test1) に次のテキスト文字列があります。
そして、次のコマンドを使用してエンコードしました(テキストファイル自体ではなく、テキスト文字列をエンコードしていることを思い出してください):
これにより、次のダイジェストが生成されます。
ここで、公開鍵を使用してこのダイジェストを検証したいと思いますが、使用したコマンドは、openssl のハウツーに記載されている例です。
しかし、これは常に私に「検証失敗」を与えます。
注: hash1 ファイルには \n がなく、test1 ファイルにはエンコードされた文字列が含まれています。
security - ネットワーク経由で送信されるハッシュマップの整合性
私のサーブレットは、HashMapとそのMD5ハッシュを暗号化して送信します。
次に、クライアントはそれらを受け取り、MD5をHashMapから作成したものと比較します。
これは時々機能しますが、他の場合は機能しません。たとえば、HashMapが次の場合です。
それはうまくいく
ただし、次の場合:
それは機能しません-2つのMD5ハッシュは異なります。(違いは「カウン」ではなく「カウント」のキーです)
プログラムは同様のHashMapを送信しますが、すべて文字列または整数のみのキー/値が含まれています。このような奇妙なものを見たのはこれが初めてです。
HashMap/MD5が実際に送信される方法の詳細-
サーバーは次のことを行います。
クライアントは次のことを行います。
同じタイプのinputStreamsを使用して復号化し、同じ方法でハッシュマップのmd5を計算してから、次を使用して比較します。
試したすべてのHashMapを送信するためにこれが機能した理由はわかりませんが、このカウントキーでは機能しません。クライアントとサーブレットのHashMap内の個々のキーと値のペアを比較することをテストしましたが、それらは同じですが、HashMap全体の2つのMD5を比較すると一致しません。
また、ストリームチェーンの正しい部分でバッファリングされたストリームを使用しているかどうかわかりませんか?
sip - SIPプロキシ認証の失敗
Asteriskサーバーに接続して発信を試みるSIPユーザーエージェントアプリケーションを開発しています。JAINSIPAPIのNIST実装を使用しています。
アプリケーションがそれ自体を登録すると、401(Unauthorized)応答がWWW-Authenticateヘッダーでアプリケーションにチャレンジします。アプリケーションは、Authorizationヘッダーを次のREGISTERリクエストに挿入します。今回、Asteriskは200(OK)応答を返します-登録は成功します。
アプリケーションがINVITE要求を送信すると、Asteriskは407(プロキシ認証が必要)応答で応答します。今回の応答には、Proxy-Authenticateヘッダーが含まれています。私のアプリケーションは再びINVITEを送信しますが、今回はAuthorizationヘッダーを使用して、Asteriskが同じ407(プロキシ認証が必要)応答で応答します。
送信されるSIPメッセージは次のとおりです(「>>」は送信メッセージを示し、「<<」は受信メッセージを示します)。
>>
<<
<<
>>
<<
<<
>>
>>
<<
>>
>>
<<
Authorizationヘッダーは、どちらの場合もまったく同じ方法で作成されます(実行される同じコード)。「digestURI」にリクエストのリクエストURIを使用しています。Authorizationヘッダーの代わりにProxy-Authorizationヘッダーを使用しようとしましたが、結果は同じです。
誰かが私が間違っていることを見ることができますか?前もって感謝します。
java - NTLM で認証すると HttpClient 4.1.1 が 401 を返し、ブラウザは正常に動作する
Apache/Jakarta HttpClient 4.1.1 を使用して、指定された資格情報を使用して任意の Web ページに接続しようとしています。これをテストするために、一度に 1 つの認証モードのみがアクティブな開発マシンに IIS 7.5 の最小限のインストールを行いました。基本認証は正常に機能しますが、ログインしようとするとダイジェストと NTLM が 401 エラー メッセージを返します。コードは次のとおりです。
Fiddler で気づいたことの 1 つは、Firefox から送信されるハッシュと HttpClient から送信されるハッシュが異なることです。おそらく、IIS 7.5 は HttpClient が提供するよりも強力なハッシュを期待しているのではないでしょうか? 何か案は?これが NTLM で動作することを確認できれば幸いです。ダイジェストもあればいいのですが、必要に応じてダイジェストがなくても生活できます。
php - PHP による Apache Digest/Basic ログイン
ユーザーのためにPHPをApacheにログインさせる方法があるかどうかを調べようとしています。したがって、ユーザーが HTML フォームで有効なユーザー名とパスワードを入力すると、PHP は資格情報を使用してログインします。したがって、次のようなものです:
私がやろうとしているのは、ファイルを保護するためにApacheに何らかのログインセキュリティを設定することですが、Apacheが資格情報を取得するために使用するユーザー名/パスワードがポップアップするのを避けたいです。
HTMLフォームに情報を入力し、ファイルを表示する前にPHPに認証を処理してもらいたいので、誰かが「http://example.com/files/private.doc」を置くことはできません。 URLでファイルを取得します。
前もって感謝します!
php - Level3 CDN からの RTMP ストリームの保護に関する問題
現在、Level3 CDN からの rtmp ストリームのセキュリティ保護に取り組んでいます。
ドキュメントは次の場所にあります: https://rapidshare.com/files/1450549534/Token_Components.html (表示するにはログインする必要があるようです。したがって、私は RapidShare でホストされています。元の URL は次のとおりです: https:// mediaportal.level3.com/mediaWeb/help/Content/ServicesDocs-Streaming/StreamingTokenAuth/TokenComponents.htm )
オンデマンド ストリーミングの入出力の例 (MP4 ファイルの場合)にスクロールします。
例を再現し、同じ値で同じ URL を取得しようとしています。そのための小さな関数を書きました:
例とまったく同じ値を使用していますが、同じダイジェストを取得できません。
長さが合うのでmd5を使いました。私はまた、大文字と非大文字の s で secret を試しました。
ここでサンプル スクリプトにアクセスできます: https://rapidshare.com/files/2581196874/Appendix.html (オリジナル: https://mediaportal.level3.com/mediaWeb/help/Content/ServicesDocs-Streaming/StreamingTokenAuth/Appendix- SampleScripts.htm )
しかし、md5 はまったく使用されておらず、sha1 が使用されています。ただし、sha1 は例のダイジェストよりも長くなっています。
もちろん、両方のバージョンに値を入力しようとしましたが、どちらも機能しませんでした。
私の質問は次のとおりです。誰かが例を再現したり、ダイジェストを教えたり、例に従って動作するように機能を変更したりできますか?
ruby-on-rails - Rails アプリでのメール頻度構成の戦略
ユーザーがメール通知の頻度を設定できるようになることを楽しみにしています。
典型的なオプションを提供したいと思います: 直接メール、毎日および毎週のダイジェスト
Rails 3アプリケーション内でこれを構築するのに最適な戦略は何ですか?
皆さんありがとう !