問題タブ [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.
python - hashlib と hmac が異なるハッシュ値を生成するのはなぜですか?
Python 2.7 では、
出力、
または私は誤解していますか?
silverlight - Windows Phone 7 / Silverlight 上の HMAC MD5
Windows Phone 7 で HMAC_MD5 アルゴリズムを生成しようとしています。発見したように、HMACMD5 クラスは WP7 に実装されていません。一方、MD5 Silverlight ライブラリ ( http://archive.msdn.microsoft.com/SilverlightMD5 ) を見つけましたが、定義済みのキーに基づいて新しい MD5 署名を生成できません。ヒントはありますか?ありがとう、アレックス
windows - WindowsでHMACSHAを計算する方法は?
WindowsのプログラムでHMACSHAを計算する必要があります。このプログラムは、以前は、opensslを使用していたLinuxで実行されていました。次に、Windowsに移植する必要がありますが、WindowsプラットフォームSDKがHMACSHAを計算する手段を提供しているかどうかはわかりません。
msdnで次のリンクを確認しましたが、わかりません-http://msdn.microsoft.com/en-us/library/aa382453(v=VS.85) .aspx。
私にとって最善の方法を教えてください。既存のプログラムはCです。
wcf - IIS は、末尾のスラッシュなしで WCF サービス呼び出しの後にリダイレクト時に Authorization ヘッダーをダンプします
IIS 7 Web サイト インスタンスで実行されている WCF REST サービスをまとめており、トークンと HMAC を Authentication ヘッダーに挿入するHMAC認証スキームを使用しています。典型的なリクエストのヘッダー リストの例は、次のようになります。
.svc ファイルの代わりにルーティングを使用してサービスをセットアップしたので、Global.asax は次のようになります。
問題は、サービスがそのようなルーティングで宣言されている場合、IISが末尾のスラッシュのないWebGet
uriへの呼び出しを受信すると、末尾のスラッシュのある uri への 307 リダイレクトを行うことです。役に立つと思いますが、問題は、リダイレクトが Authorization ヘッダーをダンプすることです。
私のサービスクラスはすべてコーシャであり、他のすべての点でうまく機能します. リダイレクトが発生した場合にその Authorization ヘッダーを維持できるようにする方法はありますか? 解決策はIISの構成になると思いますが、スラッシュなしのバージョンのURIを取得するために、あらゆる種類のルーティングハックを配置できると思います。
更新:この動作を検証するこの記事
を見つけましたが、実際には修正されていません。
url - HMAC または OpenSSL による URL 署名
URL 署名 (例: http://.../?somearg=value&anotherarg=anothervalue&sig=aSKS9F3KL5xc ) に興味がありますが、いくつかの要件があり、まだ解決策がありません。
PHP
またはfor pages のいずれかを使用するPython
ので、2 つのうちの 1 つを使用して署名し、署名を検証できる必要があります。- 私の計画は、秘密鍵/公開鍵スキームを使用してデータに署名し、署名が有効であることを確認できるようにすることでしたが、ここで複雑になります。
- 検証が行われているときのデータは不明です (それはただではありません
somearg=value&anotherarg=anothervalue
) 。
私の最初の本能は、たとえば RSA キーペアを使用して OpenSSL を使用し、署名の行に沿って何かを行うことでした:およびデータとキーのみopenssl rsautl -sign -inkey private.pem -in sensitive -out privsigned
に基づく検証: 。privsigned
openssl rsautl -verify -inkey public.pem -in privsigned -pubin
PHPを使用してデータopenssl_get_privatekey()
にopenssl_sign()
署名しても問題ありませんが、検証するために(復号化された!)データを知る必要があります(これはありません):openssl_get_publickey()
およびhttp://php.net/openssl_verifyopenssl_verify($data, $signature, $pubkeyid);
から。
それとも、ここで何か不足していますか?
Python
そこで、HMAC を調べてみましたが、との両方で多くのハッシュ関数が利用可能ですが、ハッシュを検証するPHP
方法については困惑しています。
を使用すると、 「キー」(この場合は文字列キー) を使用してハッシュを作成できます。しかし、ハッシュが有効であることを確認するにはどうすればよいですか (つまり、エンド ユーザーが手動で入力しただけではありません。PHP
hash_hmac()
&sig=
&sig=abcdefg1234
要約すると(長い質問で申し訳ありません):サーバーの(証明書/文字列)キーによって署名/ハッシュが作成されたことを確認するにはどうすればよいですか(上記のデータのハッシュをやり直しても確認できない場合)?また、Priv/pub-key または HMAC のどちらのルートを選択すればよいかについて、何か好みはありますか?
大小のポインタは大歓迎です!前もって感謝します、
- ジョシュ
java - Android HMAC-SHA1 は標準の Java HMAC-SHA1 とは異なります
Android の一部の HMAC に問題があります。Android hmac-sha1を検索すると、Web全体に表示される次のコードでSHA1アルゴリズムを使用しています。
このコードをテストするために、単純な標準 Java プログラムを作成して (もちろん、Log.v 呼び出しを System.out.println 呼び出しに置き換えて)、Android バージョンと比較できるようにしました。どちらの場合も、base_string とキーに同じテスト値を使用しています。
さらに、いくつかの PHP 関数と検証サーバー (いくつかの OAuth トークンを使用) を使用して、標準の Java からエンコードされた結果を検証しました。コードは標準の Java プログラムでは問題なく動作しますが、Android プログラムでは動作しません。私は多くの検索を行いましたが、何が間違っているのかわかりません。誰もこれを経験したことがありますか?
標準のJavaとAndroidの結果は次のとおりです...
- Java (および PHP):
fH/+pz0J5XcPZH/d608zGSn7FKA=
- Android プログラム:
fH/vv73vv709Ce+/vXcPZH/vv73vv71PMxkp77+9FO+/vQ==
もう少し調べてみると、これらのhmac値を比較すると、Androidバージョンにはあらゆる種類の余分なスペースやその他の未知の文字記号とJavaプログラムがあるため、混乱するBase64エンコードではなく、hmac関数であると確信しています。
どんな助けでも大歓迎です!
php - HMAC アルゴリズムのキー
他のクライアント側でデータ検証に使用する必要があるため、HMAC アルゴリズムの秘密鍵を生成するにはどうすればよいですか?
前もって感謝します。
c++ - C++ プログラムで作成された HASH を Python スクリプトで復号化できますか?
Android アプリで見つけた秘密のコードを使って参加できるコンテストがあります。アプリを購入した人のみがコンテストに参加できるようにするために選択した方法は、HMAC SHA256 でエンコード (暗号化?) された共有シークレットを使用することです。
したがって、私の秘密は Android アプリの C で暗号化されます (Crypto++ を使用して、より良い SHA ライブラリの提案はありますか? Crypto++ は本当に使いにくいと思います)。
これはほんの一例です:
したがって、ユーザーがシークレット コードを発見すると、Web ページ (Python スクリプト) に移動し、HMAC で暗号化された共有シークレットが CGI パラメーターとして渡されます。
http://mysite/competition.py?encodedSecret=3dfdfdg343jkfjk390kl
次に、私の python スクリプトは CGI パラメーターを調べて解読し、共有シークレット (アプリを持っているユーザーからのコンテスト エントリであることを確認するため) とシークレット コード (ユーザーが何かを獲得したかどうかを確認するため) を取得します。
私の質問は: Python スクリプト (hashlib モジュールを使用) が、Crypto++ を使用して C で暗号化されたものを復号化することは可能ですか?
java - HMAC-SHA256 署名計算アルゴリズム
HMAC-SHA256 アルゴリズムを使用して署名を作成しようとしていますが、これが私のコードです。US ASCII エンコーディングを使用しています。
上記のコードから得られる結果は次のとおりです。
これは、wikiに表示されているものと同じです
を除いて0x
。
すべてを正しく行っているか、コードを改善できるかどうか、アイデア/コメントを探しています。
java - JavaからのRubyのHMAC
私はrubyで次のJava関数を書き込もうとしています。
System.out.printlnを追加しました。出力は次のとおりです。
今ルビーでやってみます
どのハッシュも一致しません。エンコーディングなどと関係があることはわかっています。JavaHMACを一致させるにはどうすればよいですか。