問題タブ [hmac]
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.
openssl - aes-256-cbc を使用した openssl hmac
openssl
Linux でコマンド ライン プログラムを使用して、ファイルの AES HMAC を取得しようとしています。man ページを見てきましたが、HMAC の作成方法がよくわかりません。enc
コマンドを使用してファイルを暗号化できopenssl
ますが、HMAC を作成できないようです。暗号化は次のようになります。
アドバイスやチュートリアルは素晴らしいでしょう
c++ - OpenSSLHMAC関数の偶発的な複雑さ
SSLドキュメント分析
この質問は、OpenSSLでのHMACルーチンの使用に関するものです。
OpenSSLのドキュメントは特定の領域では少し弱いので、プロファイリングにより、次のことを使用していることが明らかになりました。
ここから、私のライブラリランタイムの40%が、舞台裏でHMAC_CTXの作成と削除に費やされていることを示しています。
HMAC_CTXを明示的に作成および破棄するための2つの追加関数もあります。
HMAC_CTX_init()は、最初に使用する前にHMAC_CTXを初期化します。呼び出す必要があります。
HMAC_CTX_cleanup()は、HMAC_CTXからキーとその他のデータを消去し、関連するリソースを解放します。HMAC_CTXが不要になったときに呼び出す必要があります。
これらの2つの関数呼び出しには、接頭辞として次のものが付いています。
メッセージがメモリに完全に保存されていない場合は、次の関数を使用できます
私のデータは完全にメモリに収まるので、HMAC関数(署名が上に示されている関数)を選択します。
マニュアルページで説明されているように、コンテキストは次の2つの関数を使用して使用されます。
HMAC_Update()は、認証されるメッセージのチャンク(データでのlenバイト)を使用して繰り返し呼び出すことができます。
HMAC_Final()は、メッセージ認証コードをmdに配置します。このコードには、ハッシュ関数出力用のスペースが必要です。
アプリケーションの範囲
私のアプリケーションは、本物の(HMAC、ナンスも使用されます)、CBC-BF暗号化プロトコルバッファ文字列を生成します。このコードは、OSとしてのWindows / Linux、Webサーバーとしてのnginx、Apache、IIS、およびPython/.NETおよびC++WebサーバーフィルターとしてのさまざまなWebサーバーおよびフレームワークとインターフェイスします。
上記の説明は、ライブラリがスレッドセーフである必要があり、潜在的に再開可能な処理状態を持つ必要があることを明確にする必要があります。つまり、OSスレッドを共有する軽量スレッド(スレッドローカルメモリが画像から外れる可能性があります)。
質問
(1)スレッドセーフ/(2)再開可能な状態の方法で各呼び出しの40%のオーバーヘッドを取り除くにはどうすればよいですか?(2)すべてのソースデータが一度に存在するためオプションであり、ダイジェスト作成の途中でスレッドの制御を放棄することなく、ダイジェストが適切に作成されていることを確認できます。それで、
(1)おそらくスレッドローカルメモリを使用して実行できますが、CTXを再利用するにはどうすればよいですか?HMAC_final ()呼び出しはCTXを再利用可能にしますか?
(2)オプション:この場合、CTXのプールを作成する必要があります。
(3)HMAC関数はこれをどのように実行しますか?関数呼び出しのスコープ内にCTXを作成し、それを破棄しますか?
擬似コードと解説が役立ちます。
c# - 相互運用:JavaおよびdotNetのHmacSHA1
アプリでは、以下を使用してJavaでSHA1Hmacを計算しています。
その後、hmacはC#で(スマートカード上で)次を使用して検証されます。
ただし、結果は同じではありません。私は何か重要なことを見落としましたか?
入力は同じようです。ここにいくつかのサンプル入力があります:
両方のプラットフォームに独自のhmacsha1を実装してもかまいませんが、既存のものを使用します。
ありがとう!
django - Django から元のクエリを取得する
Django から元のクエリ (送信されたものとまったく同じ形式) を取得したいと思います。
現在、django はクエリ dict オブジェクトを送信します。ここで、querydict.urlencode() を実行すると、クエリが返されますが、送信されたものとは異なる形式になります。これは、辞書が位置をマングルするためです。
GET の場合は、request.get_full_path() を使用できます。
POST のメカニズムが見つかりませんでした。
私は HMAC を行っているため、これが必要です。HMAC では、フィールドの正確な配置が重要です。
よろしく
K
php - PHP: 文字列の HmacSHA256 署名を生成するにはどうすればよいですか?
PHPで文字列のHmacSHA256署名を作成する方法はありますか?
coldfusion - HMACSHA1ColdFusion
助けてください!私はこれの上に髪を引っ張っています。:)
認証のためにHMACSHA1を実行する必要があるサイトがあります。現在、別の言語で動作しますが、ColdFusionに移動する必要があります。私の一生の間、私は文字列を一致させることができません。どんな援助でも大歓迎です。
データ:https%3A%2F%2Fwww%2Etestwebsite%2Ecom%3Fid%3D5447
キー: 265D5C01D1B4C8FA28DC55C113B4D21005BB2B348859F674977B24E0F37C81B05FAE85FB75EA9CF53ABB9A174C59D98C7A61E2985026D2AA70AE4452A6E3F2F9
正解:WJd%2BKxmFxGWdbw4xQJZXd3%2FHkFQ%3d
私の答え:knIVr6wIt6%2Fl7mBJPTTbwQoTIb8%3d
どちらもBase64エンコードされてから、URLエンコードされます。
security - ダブルハッシュパスワード-クライアントとサーバー
ねえ、最初に、私はmd5(md5(...、それについてのトピックはすでにあります)のようなものについて尋ねていません。
私の質問はこれです:
クライアントがパスワードをローカルに保存できるようにします。当然、プランテキストに保存したくないので、保存および/または送信する前に、ローカルでhmacを実行します。さて、これは問題ありませんが、これがすべての場合、サーバーにはhmacが保存され、クライアントはプレーンテキストのパスワードではなくhmacを送信するだけでよいため、攻撃者はサーバーから保存されたハッシュを使用できます。誰かのアカウントにアクセスするため(もちろん、誰かがデータベースへのそのようなアクセスを取得するという壊滅的なシナリオで)。
したがって、私たちのアイデアは、hmacを介してクライアントでパスワードを1回エンコードし、サーバーに送信し、そこで2回目にhmacを介してエンコードし、保存されている2回のhmacのパスワードと照合することでした。これにより、次のことが保証されます。
- クライアントは、パスワードをプレーンテキストとして保存しなくてもローカルに保存できます
- クライアントは、他のネットワークパーティについて(あまり)心配することなくパスワードを送信できます
- サーバーは、誰かがサーバーからパスワードを盗んだり、それを使用してログインしたりすることを心配することなく、パスワードを保存できます。
当然、他のすべてのもの(強力なパスワード、複塩など)も適用されますが、質問にはあまり関係ありません。
実際の質問は、これは堅実なセキュリティ設計のように聞こえますか?この方法で物事を行うことの欠陥を見落としましたか?このようなもののセキュリティパターンはありますか?
補遺:パスワードをプレーンテキストでクライアントにローカルに保存したくない理由は、悲しいことに、多くの人が依然として複数のサービスに同じパスワードを使用しているため、「実際の」パスワードを取得する方が大きくなるためです。ハッシュを盗まれるよりも、ユーザーのセキュリティ違反。
c# - ComputeHashが決定論的に機能しないのはなぜですか?
興味深い問題が発生しました。「HMACSHA256」ハッシュのComputeHash()が決定論的に動作していないようです。HashAlgorithm.Create( "HMACSHA256")を使用してHashAlgorithmのインスタンスを2つ作成すると、ComputeHashを実行します。 2つの異なる結果が得られます。以下は、この動作を示す静的クラスの例です。
また、呼び出しを非静的にしようとしました(実際には非静的に開始され、入力配列を2倍、3倍、4倍にチェックしました。各呼び出しでまったく同じです。のようなウィンドウ:
そして、メソッドのブレークポイントを介してイミディエイトウィンドウで2回実行すると、2つの異なるハッシュが返されます。
私はハッシュが決定論的であると想定されていることを知っています。デバッガーでの実行で何かが起こっていますか?または他のアイデアはありますか?本当にこれは今の言葉にとって奇妙な2つです:-P..
ありがとうジョシュ
java - Pythonの例と同等のJavaでHMACを生成する方法は?
Javaで Oauth を介して Twitter 承認を取得するアプリの実装を検討しています。最初のステップは、リクエスト トークンの取得です。App EngineのPython の例を次に示します。
コードをテストするために、Python を実行し、Java で出力をチェックしています。ハッシュベースのメッセージ認証コード (HMAC) を生成する Python の例を次に示します。
出力:
この例をJavaでどのように複製しますか?
Javaでの HMACの例を見てきました。
javax.crypto.Macを使用していますが、すべて問題ありません。ただし、SecretKeyコンストラクターはバイトとアルゴリズムを使用します。
Python の例のアルゴリズムは何ですか? アルゴリズムなしでJava秘密鍵を作成するにはどうすればよいですか?
cryptography - HMAC セキュリティ - SHA-1 に基づく HMAC のセキュリティは、SHA-1 での衝突攻撃の影響を受けますか?
SHA-1 に基づく HMAC のセキュリティは、SHA-1 に対する衝突攻撃の影響を受けますか?