Saltar al contenido

HMAC-SHA-256 en PHP

Si te encuentras con algo que te causa duda puedes comentarlo y te ayudaremos lo mas rápido que podamos.

Solución:

Hay un par de cosas a tener en cuenta:

  1. Tu key está codificado en base64. Tienes que decodificarlo antes de poder usarlo con funciones php. Eso es lo más importante que te has perdido.
  2. Mhash está obsoleto por la extensión Hash.
  3. Desea que la salida se codifique de forma personalizada, por lo que se deduce que necesita una salida sin procesar de la función hmac (php, de forma predeterminada, la codificará en hexadecimal).

Entonces, usando la extensión hash esto se convierte en:

$key = "LRH9CAkNs-zoU3hxHbrtY0CUUcmqzibPeN7x6-vwNWQ=";
$str = "kki98hkl-u5d0-w96i-62dp-xpmr6xlvfnjz:20151110171858:b2c13532-3416-47d9-8592-a541c208f755:hKSeRD98BHngrNa51Q2IgAXtoZ8oYebgY4vQHEYjlmzN9KSbAVTRvQkUPsjOGu4F";

function encode($data) 
    return str_replace(['+', '/'], ['-', '_'], base64_encode($data));


function decode($data) 
    return base64_decode(str_replace(['-', '_'], ['+', '/'], $data));


$binaryKey = decode($key);

var_dump(encode(hash_hmac("sha256", $str, $binaryKey, true)));

Salidas:

string(44) "P-WgZ8CqV51aI-3TncZj5CpSZh98PjZTYxrvxkmQYmI="

Simplemente use hash_hmac() función disponible en PHP.

Ejemplo :

hash_hmac('sha256', $string, $secret);

Doc aquí: http://php.net/manual/fr/function.hash-hmac.php

Te mostramos comentarios y valoraciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *