¿Hay alguna manera de crear una firma HmacSHA256 de una cadena en php?PHP: ¿Cómo puedo generar una firma HmacSHA256 de una cadena
20
A
Respuesta
46
9
La función hash_hmac()
podría ayudar, aquí:
generar un valor de clave hash utilizando el método HMAC
Por ejemplo, la siguiente porción de código:
$hash = hash_hmac('sha256', 'hello, world!', 'mykey');
var_dump($hash);
Da la siguiente salida:
string '07a932dd17adc59b49561f33980ec5254688a41f133b8a26e76c611073ade89b' (length=64)
Y, para obtener la lista de algoritmos de hash que se pueden utilizar, consulte hash_algos()
.
1
Aquí es un ejemplo de Datatrans transacción firmar (solución de pago electrónico suizo) antes de PSP llamada con HMAC-SHA-256.
Espero que pueda ayudar a algunos desarrolladores.
$hmacKey = 30911337928580013;
$merchantId = 1100004624;
$amount = $total * 100;
$currency = 'EUR';
$refno = $orderId;
// HMAC Hex to byte
$secret = hex2bin("$hmacKey");
// Concat infos
$string = $merchantId . $amount. $currency . $refno;
// generate SIGN
$sign = bin2hex(hash_hmac('sha256', $string, $secret));
Nota: el ID de comerciante y clave HMAC son ambos de la documentación Datatrans disponible aquí: https://admin.sandbox.datatrans.com/showcase/doc/Technical_Implementation_Guide.pdf
Cuestiones relacionadas
- 1. Generando firma HmacSHA256 en JUnit
- 2. ¿Cómo puedo generar una secuencia a partir de una cadena?
- 3. Cómo generar una cadena de activación segura en php?
- 4. cómo generar una cadena única
- 5. ¿Cómo verifico una firma DKIM en PHP?
- 6. ¿Cómo generar todas las permutaciones de una cadena en PHP?
- 7. ¿Cómo puedo generar un hash largo de una cadena?
- 8. ¿Cómo puedo generar un GUID para una cadena?
- 9. ¿Cómo puedo generar una URL amigable en Symfony PHP?
- 10. Generar PDF con firma digital
- 11. Cómo generar una cadena multilínea en Bash?
- 12. ¿Cómo puedo proteger una cadena de conexión mySQL en PHP?
- 13. ¿Cómo puedo usar php para analizar una cadena de fecha?
- 14. PHP construir una cadena Unicode?
- 15. ¿Puedo eliminar una firma digital de una DLL?
- 16. ¿Cómo puedo generar una navegación en Middleman?
- 17. ¿Cómo puedo generar una variable en una prueba de rspec?
- 18. ¿Cómo generar la firma del método?
- 19. ¿Cómo renovar una firma jar?
- 20. Cómo producir una cadena única de una matriz php
- 21. Cómo generar una ID de sesión única en php
- 22. Cómo generar una cadena aleatoria de 20 caracteres
- 23. Generar una cadena UUID con ARC habilitado
- 24. ¿Cómo se verifica una firma RSA SHA1 en Python?
- 25. ¿Cómo puedo fácilmente (en java) generar nombres de archivo a partir de una cadena de máscara?
- 26. ¿Cómo reemplazar una variable dentro de una cadena con PHP?
- 27. ¿Cómo eliminar una subcadena de una cadena usando PHP?
- 28. ¿Cómo incrementar una cadena alfanumérica en PHP?
- 29. Cómo truncar una cadena UTF8 en PHP?
- 30. Cómo generar una fecha aleatoria entre dos fechas usando php?
lo que hay dentro $ cadena? –
@MahaDev Lo que sea que desee la firma de. –
@ SebastianPaaskeTørholm will hash_hmac siempre generará una cadena única ...? – usama