IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Différence base64_encode entre Java et PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Par défaut Différence base64_encode entre Java et PHP
    Salut à tous !

    Je ne sais pas si je suis au bon endroit vu que me demande concerne à la fois Java et PHP.
    Alors, j'ai récupéré une fonction en Java. Je dois faire la même chose mais en PHP (je ne peux pas modifier le code Java).

    Voila la fonction Java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    String generateSignature () {
        byte[] Sequence = ("hello").getBytes("UTF-8");
        Mac HMAC = Mac.getInstance("HMACSHA256");
        HMAC.init("SECRET_KEY");
        byte[] Hash = HMAC.doFinal(Sequence);
        String Signature = new String(Base64.encodeBase64(Hash));
        return Signature;
    }
    La "traduction" en PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function generateSignature() {
        $sequence = "hello";
        $encrypted = hash_hmac('sha256', $sequence, "SECRET_KEY");
        return base64_encode($encrypted);
    }
    Le résultat des deux fonctions n'est pas le même (ça serait trop beau^^).
    Cependant, il semblerait que la génération de la clé soit bien identique.
    En affichant les valeurs de "Hash" et "$encrypted", j'obtiens le même résultat.

    C'est donc je pense l'encodage en base 64 qui n'est pas identique d'un langage à l'autre (encodage d'un array de bytes VS encodage d'un String).

    Auriez-vous une solution ?

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    le hash est en binaire ? (raw_output)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Par défaut
    Merci stealth35 pour ta réponse.

    J'ai modifié ma fonction PHP qui deviens donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function generateSignature() {
        $sequence = "hello";
        $encrypted = hash_hmac('sha256', $sequence, "SECRET_KEY",true);
        return base64_encode($encrypted);
    }
    J'étais pourtant sûr de l'avoir testé mais je n'obtenais pas le bon résultat. J'ai refait le test aujourd'hui est miracle, j'obtiens la même chose !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 27
    Dernier message: 26/10/2011, 14h05
  2. Communication entre Java et : PHP ou Javascript?
    Par benthebest dans le forum Langage
    Réponses: 5
    Dernier message: 09/11/2009, 20h02
  3. Transfert de données entre java et php
    Par grafistolage dans le forum Langage
    Réponses: 2
    Dernier message: 08/10/2009, 14h23
  4. Transfert de données entre java et php
    Par grafistolage dans le forum Applets
    Réponses: 0
    Dernier message: 15/04/2009, 10h04
  5. Agenda partagé : Choix entre Java et PHP ?
    Par joxbl dans le forum Général Conception Web
    Réponses: 19
    Dernier message: 31/03/2006, 13h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo