Comment obtenir PHP pour créer HMAC-SHA1 des chaînes de caractères comme Objective-C?

Je suis en train de mettre en œuvre une solution d'authentification avec PHP et Objective-C. dans les Deux langues, de créer leur propre HMAC-SHA1 chaînes codées avec la même clé et le même secret.

Apparemment, ils semblent différer, à leur manière, comment ils le font.

Sur Objective-C, je suis en utilisant OAuthCustomer que la signature de la classe qui produit la bonne à la recherche chaîne codée:

/3n/d4sKN6k3I7nBm1qau59UukU=

Sur PHP côté, je suis en utilisant la fonction intégrée hash_hmac('sha1',...) avec un encodage base64 qui produit ce:

ZmY3OWZmNzc4YjBhMzdhOTM3MjNiOWMxOWI1YTlhYmI5ZjU0YmE0NQ==

Alors j'ai essayé d'utiliser une autre fonction (mentionné ici) et ce produit avec de l'encodage base64 ce:

NWY1ODUwOWE3NGI4NWU5ZTIxMDYzMTNmNzk3NTYxMDQ4OWE1MmUzNQ==

Je n'ai absolument aucune idée de comment je peux résoudre ce problème et je ne sais même pas pourquoi cela se produit.

Merci beaucoup pour l'aide,

Paul

  • La sortie de hash_hmac() est un hex-string. Vous avez base64_encoded que hexstring, ce qui est probablement faux. Définir le 4ème paramètre à hash_hmac à la première vraie.
  • Merci. Je l'ai changé mais le résultat n'était pas vraiment différente (les clés et les secrets sont dynamiques donc il a changé un peu): N2ZmYWNlZjc2YjYwZGIzMzA0ZjBmMDhindhkmzuyntjhyjviyty1nw==
  • Non, vous n'avez pas. C'est toujours un hexstring lors du décodage.
  • Vous êtes un génie. J'ai changé la 3ème valeur de la fonction md5 de vrai parce que j'ai raté un support. Maintenant il fonctionne comme il est censé. Merci!!!! 🙂
  • Faites-en une réponse, obtenir des points!
  • Noël à la paresse. Aussi: vous avez seulement trois points de plus que moi! :}

InformationsquelleAutor Paul | 2010-12-23