[Résolu] Encodage base64 C / PHP différents ?
bnk
Membre
Bonjour,
J'ai un login et un pass md5 que je souhaite comparer.
Coté serveur j'utilise cette fonction:
Ce qui me donne -> dGVzdDowOThmNmJjZDQ2MjFkMzczY2FkZTRlODMyNjI3YjRmNg==
Coté iPhone, j'ai essayé plusieurs méthodes.
Exemple avec celle-ci:
Ce qui me donne ->IHRlc3Q6MDk4ZjZiY2Q0NjIxZDM3M2NhZGU0ZTgzMjYyN2I0ZjY=
Après recherche, je lis que la fonction PHP encode en base64 MIME et sur iPhone je ne sais pas.
Connaissez vous une méthode pour obtenir le même base64 en PHP et en C/Objective-C.
J'ai aussi récupéré les sources PHP et utilisé la fonction C derrière encode_base64 mais j'obtiens toujours
IHRlc3Q6MDk4ZjZiY2Q0NjIxZDM3M2NhZGU0ZTgzMjYyN2I0ZjY= sur mon iPhone et l'autre sur le serveur.
Une idée?
Merci!
J'ai un login et un pass md5 que je souhaite comparer.
Coté serveur j'utilise cette fonction:
<br /><?php<br />echo base64_encode('test:'.md5('test'));<br />?><br />
Ce qui me donne -> dGVzdDowOThmNmJjZDQ2MjFkMzczY2FkZTRlODMyNjI3YjRmNg==
Coté iPhone, j'ai essayé plusieurs méthodes.
Exemple avec celle-ci:
<br />int encode(unsigned s_len, char *src, unsigned d_len, char *dst)<br />{<br /> static char base64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";<br /> unsigned triad;<br /> <br /> for (triad = 0; triad < s_len; triad += 3)<br /> {<br /> unsigned long int sr;<br /> unsigned byte;<br /> <br /> for (byte = 0; (byte<3)&&(triad+byte<s_len); ++byte)<br /> {<br /> sr <<= 8;<br /> sr |= (*(src+triad+byte) & 0xff);<br /> }<br /> <br /> sr <<= (6-((8*byte)%6))%6; <br /> <br /> if (d_len < 4) return 1;<br /> <br /> *(dst+0) = *(dst+1) = *(dst+2) = *(dst+3) = '=';<br /> switch(byte)<br /> {<br /> case 3:<br /> *(dst+3) = base64[sr&0x3f];<br /> sr >>= 6;<br /> case 2:<br /> *(dst+2) = base64[sr&0x3f];<br /> sr >>= 6;<br /> case 1:<br /> *(dst+1) = base64[sr&0x3f];<br /> sr >>= 6;<br /> *(dst+0) = base64[sr&0x3f];<br /> }<br /> dst += 4; d_len -= 4;<br /> }<br /> <br /> return 0;<br /> <br />}<br />
Ce qui me donne ->IHRlc3Q6MDk4ZjZiY2Q0NjIxZDM3M2NhZGU0ZTgzMjYyN2I0ZjY=
Après recherche, je lis que la fonction PHP encode en base64 MIME et sur iPhone je ne sais pas.
Connaissez vous une méthode pour obtenir le même base64 en PHP et en C/Objective-C.
J'ai aussi récupéré les sources PHP et utilisé la fonction C derrière encode_base64 mais j'obtiens toujours
IHRlc3Q6MDk4ZjZiY2Q0NjIxZDM3M2NhZGU0ZTgzMjYyN2I0ZjY= sur mon iPhone et l'autre sur le serveur.
Une idée?
Merci!
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
L'erreur venait de moi, je convertissais:
au lieu de:
/slap me