私はこのPHPの呼び出しと同じJavaを探しています:java.crypto.Macを使用して、Javaの同等のHMAC-SHA1
hash_hmac('sha1', "test", "secret")
私はこれを試してみましたが、両者が同意しない:
String mykey = "secret";
String test = "test";
try {
Mac mac = Mac.getInstance("HmacSHA1");
SecretKeySpec secret = new SecretKeySpec(mykey.getBytes(),"HmacSHA1");
mac.init(secret);
byte[] digest = mac.doFinal(test.getBytes());
String enc = new String(digest);
System.out.println(enc);
} catch (Exception e) {
System.out.println(e.getMessage());
}
key = "secret"とtest = "test"の出力が一致していないようです。
どのように違いますか? sha1のテストパターンに一致するものはどれですか? PHPドキュメントの概要は、 "raw_output"オプションを示しています。 –
いくつかのテスト入力と出力を送ります(バイナリパラメータに16進エンコーディングまたは64進数を使用します)。 – erickson