問題タブ [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.
python - Pythonhashlibとsha512sumツールのSHA512の違い
Linuxの「sha512sum」ツールとPythonのhashlibライブラリから異なるメッセージダイジェストを取得しています。
これが私のUbuntu8.10で得られるものです:
どちらも文字列「test」のメッセージダイジェストを計算する必要がありますが、なぜ私が異なる結果を得ていると思いますか?
java - MySQL PASSWORD()関数のJDBCRealmダイジェスト
内部Tomcat/Java / Strutsアプリケーションの場合、JDBCRealmを使用するようにカスタム作成された認証コードを変換しています。データベースはMySQL5.0であり、パスワードは暗号化されたPASSWORD()
文字列として保存されます。私たちのバージョンのMySQLでは、PASSWORD()
関数は非標準の(独自の?)41バイトのハッシュです。(パスワードに使用するべきではなく、代わりにSHA1()
またはを使用する必要があることを今では知っていますMD5()
。しかし、ここにあります。)
すべてのユーザーにパスワードの再入力を強制せずにJDBMRealmを使用して、パスワードを再エンコードできるようにする方法はありますか?PASSWORD()
エンコードされたパスワード列に対して認証できるJDBCRealmダイジェストはありますか?
math - 2つのメッセージが同じMD5ダイジェストと同じSHA1ダイジェストを持つ可能性はどのくらいありますか?
AとBの2つの異なるメッセージ(サイズが重要な場合は、おそらく20〜80文字のテキスト)が与えられた場合、AのMD5ダイジェストがBのMD5ダイジェストと同じであり、AのSHA1ダイジェストが同じである確率はどれくらいですか。 BのSHA1ダイジェストと同じですか?あれは:
悪意のない意図、つまり、衝突を見つける目的でメッセージが選択されていないことを前提としています。これが自然に起こる確率を知りたいだけです。
「天文学的に低い」可能性は低いと思いますが、どうやって確認すればいいのかわかりません。
詳細:可能なメッセージのプールのサイズは制限されていますが、大きいです(数億)。誕生日のパラドックスの状況はまさに私が心配していることです。
linux - SUSELinux10.0で「cyrus-sasl-2.1.23」をビルドできません
「 ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/ 」からソースコードをダウンロードしました。
構成はうまくいきましたが、ビルドすると次のエラーが発生します。
...。
perl - Digest :: SHAがRFC4868に示されているものとは異なるハッシュを思い付くのはなぜですか?
私は他の言語、つまりこの時点でJavaのハッシュ関数と相互運用するためにいくつかのPerlを書き込もうとしています。おそらく正しいソースであるRFC4868が見つかりました。これには、ハッシュ値とともにいくつかのテストキーと文字列が含まれています。私は次のスニペットを使用していますが、Perlに同じ結果を出すことができません。私はそれを間違って使用しているとしか推測できません—誰かが私を正しい方向に向けることができますか?
出力は「4ef7...5d40」ですが、RFC 4868(および私の同胞のJava実装)は「87aa...6854」を返します。
python - URLLIB2 を使用したクライアント ダイジェスト認証 Python は認証ヘッダー情報を記憶しません
Python を使用して、ダイジェスト認証を使用するカスタム http サーバーに接続するクライアントを作成しようとしています。最初のリクエストを問題なく接続してプルできます。TCPDUMP を使用すると (私は MAC OS X を使用しています。私は MAC と Python の初心者です)、RFC2617 に精通している場合に予想されるように、最初の要求が実際には 2 つの http 要求であることがわかります。最初の結果は 401 UNAUTHORIZED です。サーバーから送り返されたヘッダー情報は、200 OK 応答とペイロードを生成するいくつかのカスタム Authorization ヘッダー値を持つ 2 番目の要求のヘッダーを生成するために正しく使用されます。
すべてが素晴らしいです。urllib2 のおかげで、私の HTTPDigestAuthHandler オープナーは機能しています。
同じプログラムで、同じサーバーから 2 番目の別のページを要求しようとしました。RFC によると、TCPDUMP は今回は 1 つの要求のみを表示し、ほぼすべて同じ認証ヘッダー情報を使用すると予想されます (nc はインクリメントする必要があります)。
代わりに、ゼロから始めて、最初に 401 を取得し、200 に必要な情報を再生成します。
urllib2 を使用して、ダイジェスト認証を使用した後続のリクエストで既知の認証ヘッダー値をリサイクルし、1 つのリクエストのみを実行することは可能ですか?
[意味がわかるまで数回読み直してください。これ以上分かりやすくする方法がわかりません]
Google は驚くほど成果を上げていないので、そうではないと思います。私は urllib2.py のコードとその非常に厄介なコード (「これはすばらしい努力ではありません」などのコメント) を見たので、これがバグであったとしてもショックを受けません。接続ヘッダーが閉じていることに気付きました。キープアライブに設定しても、上書きされます。それは私を keepalive.py に導きましたが、それも私にとってはうまくいきませんでした。
Pycurlも機能しません。
インタラクション全体を手作業でコーディングできますが、可能な場合は既存のライブラリに便乗したいと考えています。
要約すると、urllib2 とダイジェスト認証を使用して、同じサーバーから 2 つのページを取得し、3 つの http 要求のみを実行することは可能ですか (最初のページに 2 つ、2 つ目のページに 1 つ)。
以前にこれを試したことがあり、それが不可能であることをすでに知っている場合は、お知らせください。別の方法がある場合は、私はすべての耳です。
前もって感謝します。
.net - HTTPS & ダイジェスト認証
C#.Net でダイジェスト認証を使用して HTTPS を実装する方法は? msdn によると、資格情報クラスは SSL をサポートしていません。では、どうすれば認証を実装できますか? 私のコードは基本認証で動作しますが、ダイジェストでエラーが発生します..
hash - 2つのハッシュされたパスワードが同じであることを確認する方法は?
サーバーに送信する前にMD5を使用してログインの詳細をハッシュするプログラムを作成していますが、データベースから取得したblowfish(jBCrypt)ハッシュパスワードと比較する必要があります。
jBCryptは以下を使用します:
問題は、テストする候補のパスワードがないことです。ログイン情報の安全な送信とデータベースへのこれらの詳細の安全な保存の両方を行うにはどうすればよいですか。これに取り組むための最良の方法は何ですか?
ユーザー名、タイムスタンプ、ランダムバイト、およびパスワードを使用して、md5ダイジェスト値を作成します。
ありがとう、ウラジミール
security - HTTP ダイジェスト認証
ユーザー名と暗号化されたパスワードを格納する中央データベースで HTTP ダイジェスト認証を使用したいと考えています。これらのデータは、Apache httpd や Tomcat などのさまざまなサーバーで使用する必要があります。クライアントは、ブラウザやその他のアプリケーションが RESTful な方法で通信する人間です。
私が理解している限り、ハッシュ化されたパスワードを持つテーブルは使用できませんでした。クリア テキストのパスワードが必要な場所にHA1 = MD5(username:realm:password)を保存する可能性があるだけ です - 正しいですか?
一方、ハッシュされたパスワードを Apache httpd で使用できるようです:
Apache httpd docは次のように述べています。
クエリ ステートメントによって返される最初の行の最初の列の値は、暗号化されたパスワードを含む文字列である必要があります。
ダイジェスト認証で動作しますか? ハッシュ アルゴリズムを指定するパラメーターはありません。Apache httpd はどのアルゴリズムを使用するかをどのように決定しますか?
RFC 2617は次のように述べています。
4.13 パスワードの保存
ダイジェスト認証では、認証エージェント (通常はサーバー) が、ユーザーの名前とパスワードから派生したデータを、特定のレルムに関連付けられた「パスワード ファイル」に保存する必要があります。通常、これにはユーザー名と H(A1) で構成されるペアが含まれる場合があります。ここで、H(A1) は、上記のユーザー名、レルム、およびパスワードのダイジェスト値です。
パスワードはクリアテキストでなければならないようです。
サーブレット 3.0 仕様には次のように書かれています。
パスワードはネットワーク上で送信されませんが、HTTP ダイジェスト認証では、予想されるダイジェストを計算して受信したオーセンティケーターを検証できるように、クリア テキストのパスワードに相当するものを認証コンテナーで利用できる必要があります。
ここでの「平文のパスワードに相当するもの」とは何ですか? パスワードハッシュ?
Tomcat のドキュメントには次のように書かれています。
DIGEST 認証でダイジェストされたパスワードを使用する場合、ダイジェストの生成に使用される平文は異なります。上記の例では、{cleartext-password} を {username}:{realm}:{cleartext-password} に置き換える必要があります。たとえば、開発環境では、これは testUser:localhost:8080:testPassword の形式をとることがあります。
ここでは平文のパスワードが必要です。
では、すでに暗号化されたパスワードで HTTP ダイジェスト認証を使用したり、パスワードをクリア テキストにすることはできますか?
別のサブドメインからページを要求した場合、ユーザーは資格情報を再入力する必要がありますか?
タブが閉じられたとき、または全体が閉じられたときにのみ、ブラウザーはキャッシュされたパスワードを削除しますか? おそらくこれはブラウザごとに異なるでしょう - どのブラウザがそれを削除し、どのブラウザがそれを保持するかに興味があります。
全体的な問題は、ダイジェスト認証が、既に暗号化されたパスワードを持つ中央ユーザー データベースを使用する私のシナリオに適しているかどうかです。または、セッション ベースのシングル サインオン サービスを使用する方がよいでしょうか?
c# - C#とダイジェスト認証を使用してTLS Webサービスに接続できません。Firefoxは成功し、IE8は失敗します
C#とダイジェスト認証を使用してWebサービスに接続しようとしていますが、エラーが発生するたびに401 - Not Authorized
エラーが発生します。しかし、Firefoxを介してサービスにアクセスしようとすると、すべて問題ありません。IE8を使用すると、パスワードが受け入れられず、401を取得しました。
あなたはなにか考えはありますか?助けてくれてありがとう。
これが私が使用しているテストコードです: