Sto cercando un java equivalente a questa chiamata php:java equivalente di php HMAC-SHA1
hash_hmac('sha1', "test", "secret")
ho provato questo, utilizzando java.crypto.Mac, ma i due non sono d'accordo:
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());
}
Le uscite con key = "secret" e test = "test" non sembrano corrispondere.
Bene, come si differenziano? Quale corrisponde ai modelli di prova per sha1? Una rapida occhiata al documento PHP mostra le opzioni "raw_output". –
Pubblica alcuni input e output di test (usa codifica esadecimale o base-64 per i parametri binari). – erickson