Cryptage

Bonjour les costauds du PHP

Voici mon problème. Je viens de Objective C, et dans mon code je crypte un mot de passe de la manière suivante :

#define kSalt @"adJHGJKGTI^*&^*&877887hjg855"
//salt the password
NSString* saltedPassword = [NSString stringWithFormat:@"%@%@", txtPassword.text, kSalt];
//prepare the hashed storage
NSString* hashedPassword = nil;
unsigned char hashedPasswordData[CC_SHA1_DIGEST_LENGTH];
//hash the pass
NSData *data = [saltedPassword dataUsingEncoding: NSUTF8StringEncoding];
if (CC_SHA1([data bytes], [data length], hashedPasswordData))
{
hashedPassword = [[NSString alloc] initWithBytes:hashedPasswordData length:sizeof(hashedPasswordData) encoding:NSASCIIStringEncoding];
} else {
[UIAlertView error:@"Password can't be sent"];
return;
}

Mais je n'arrive pas au même résultat en php ...
 $pass="popo";
$Ksalt="adJHGJKGTI^*&^*&877887hjg855";

$acrypt = sha1($pass.$Ksalt);

echo utf8_encode($acrypt);
Comment dois je faire ?

Le mot de passe (popo) salé doit donner un code du genre :
»)6Ã<@à Â--¤"7 ¦Ã<8ÃzõR/ÃOE

merci pour votre aide :)
D.

5 réponses

  1. ça ressemble bien à une sortie de sha1, ton utf8_encode ne fais rien sur cette chaîne.
    Tu peut toujours utiliser base64_encode si tu veux compliqué la chaîne de sortie.
    1. Merci,
      voila mon retour base64_encode
      NTg0YTA1ZjU4NDI5ZTViZTI0NTU5ZGMxYjhmZWIzZDljZmUzNzU0Mw==

      A quoi ressemble
      »)6Ã<@à Â--¤"7 ¦Ã<8ÃzõR/ÃOE

      On dirait une chaine "mal" encode ?
      Genre 584a05f58429e5be24559dc1b8feb3d9cfe37543 qui serait passe par un CHARSET non ?

      Je pense meme que mon code de base (Objectif +) aurait du me generer un
      584a05f58429e5be24559dc1b8feb3d9cfe37543

      Qu'en pensez vous ?
      1. A la base oui, c'est une chaîne mal encodé (Forcé par le utf8_encode), mais cette fonction ne doit agir que sur les accents, donc ça ne change rien sur une sortie de sha1 qui n'en a pas.

        Après, je ne sais pas pourquoi tu voulais faire ce utf8_encode à la base.
        Si c'est juste pour compliqué la chaîne, le base64 sera suffisant, sinon il ne sert à rien.

        Pour plus de sécurité, changer de méthode de cryptage par compte, sha1 est pas terrible, terrible.