Domanda

ho intenzione di implementare la licenza generatore di chiavi sul mio sito ma non ho molto poche conoscenze di PHP! Nella mia applicazione (cacao) Ho integrare un sistema di verifica che utilizzano la funzione RSA_sign (in C #) ... Vorrei utilizzare il sistema di notifica IPN PayPal per generare automaticamente e inviare ai miei utenti le loro chiavi di licenza ... ma io davvero non so come firmare una stringa in PHP utilizzando una chiave RSA !!! In php So solo la funzione openss_sign ma non è la stessa cosa! O è meglio e più facile da usare un metodo DSA firma ???

, aiuto!

Grazie in anticipo per tutte le risposte !!!

È stato utile?

Soluzione

Si vuole openssl_sign () .

Modifica

  • Assicurarsi che il digest del messaggio è quello che si desidera utilizzare per verificare.
  • Non testarlo confrontando l'uscita Base64 con un'altra firma, testarlo per la verifica della firma nel codice C #. Credo che sia possibile per due firme valide con la stessa chiave dei dati stessi di avere diverse rappresentazioni binarie.

Altri suggerimenti

Grazie! Hai ragione!

Ho trovato il problema, è nella stringa di hash che uso con l'openssl_sign! Ho questo codice in 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]);

e in php ho scritto:

$stringToEncrypt = "test";

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

L'uscita del primo codice è:

a94a8fe5ccb19ba61c4c873d391e987982fbbd3

L'uscita del secondo codice è:

a94a8fe5ccb19ba61c4c0873d391e987982fbbd3

Come potete vedere c'è un '0' perdere! Cosa fare mi sbaglio?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top