Busco un equivalente Java a esta llamada php:equivalente Java de PHP HMAC-SHA1
hash_hmac('sha1', "test", "secret")
He intentado esto, usando java.crypto.Mac, pero los dos no estoy de acuerdo:
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());
}
Las salidas con clave = "secreto" y prueba = "prueba" no parecen coincidir.
Bueno, ¿cómo difieren? ¿Cuál coincide con los patrones de prueba para sha1? Un vistazo superficial al documento PHP muestra las opciones de "raw_output". –
Publique una entrada y salida de prueba (use codificación hexadecimal o base-64 para parámetros binarios). – erickson