Pregunta

Voy a poner en práctica generador de claves de licencia en mi sitio web pero no tengo muy pocos conocimientos de PHP! En mi aplicación (Cacao) He integrar un sistema de verificación que utilizan la función RSA_sign (en C #) ... Me gustaría utilizar el sistema de notificación IPN paypal para generar automáticamente y enviar a mis usuarios de sus claves de licencia, pero ... realmente no sé cómo firmar una cadena en PHP usando una clave RSA !!! En php sólo conozco la función openss_sign pero no es lo mismo! ¿O es mejor y más fácil de usar un método DSA firma ???

Por favor, ayuda!

Gracias de antemano por todas las respuestas !!!

¿Fue útil?

Solución

openssl_sign () .

EDIT:

  • Asegúrese de que el resumen del mensaje es el que desea utilizar para verificar.
  • No probarlo comparando la salida base64 con otra firma, probarlo mediante la verificación de la firma en su código C #. Creo que es posible que dos firmas válidas con la misma clave de los mismos datos a tener diferentes representaciones binarias.

Otros consejos

Gracias! Tiene usted razón!

He encontrado el problema, se encuentra en la cadena de hash que yo uso con el openssl_sign! Tengo este código en Objective-C:

NSString *stringToEncript = @"test";

const char *clearText = [stringToEncript UTF8String];

unsigned char md[SHA_DIGEST_LENGTH];
SHA1((unsigned char *)clearText, strlen(clearText), md);

for(int i=0; i<SHA_DIGEST_LENGTH; i++)
    printf("%x", md[i]);

y en php que he escrito:

$stringToEncrypt = "test";

$hash = sha1(utf8_encode($stringToEncrypt));
echo $hash;

La salida del primer código es:

a94a8fe5ccb19ba61c4c873d391e987982fbbd3

La salida del segundo código es:

a94a8fe5ccb19ba61c4c0873d391e987982fbbd3

Como se puede ver que hay un '0' perder! Qué hacer yo mal?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top