Bonjour,
Pour automatiser l'installation d'un programme php je script un bash mais je bloque sur la création du mot de passe crypté de l'utilisateur. Le programme utilise sha1 avec un salt ce qui donne :
return sha1($salt.sha1($password));
En bash je passe par plusieurs étapes mais il me semble que c'est la même finalité… bah non. Ci-dessous mes scripts de test :
pass.sh
#!/bin/sh
SALT_DEV="46005"
PASS_DEV="123456"
echo "pass dev $PASS_DEV"
USERPASSE=`echo $PASS_DEV | sha1sum | cut -d" " -f1`
USERPASSE=`echo $SALT_DEV$USERPASSE | sha1sum | cut -d" " -f1`
echo "userpasse $USERPASSE"
pass.php
<?php
$salt="46005";
$password = "123456"."\n";
echo "pass dev ".$password;
echo "userpasse ".sha1($salt.sha1($password));
echo "\n";
?>
Résultat :
pass.sh
pass dev 123456
userpasse d1f4195d74d18bc99c842b6a3d4f724aff0c955a
pass.php
pass dev 123456
userpasse 8686046d9e40f96f7aa90165f3bf40351dbc3b98
# echo -n
Posté par Anonyme . Évalué à 6. Dernière modification le 02 avril 2013 à 09:52.
non vérifié: en bash ton deuxième sha1sum prend en entrée $SALT_DEV$USERPASSE et un retour chariot, alors que ton sha1 en php ne rajoute pas ce retour chariot je pense
plutot que de rajouter un retour chariot au password dans ton code php, utilise echo -n dans ton code shell
[^] # Re: echo -n
Posté par Philippe M (site web personnel) . Évalué à 1.
Une erreur de copier/coller c'est glissé dans le pass.php
Avec echo -n dans le bash marche nikel
Maintenant c'est le même hash, merci.
Born to Kill EndUser !
[^] # Re: echo -n
Posté par Anonyme . Évalué à 0.
Pour avoir l'équivalent du code shell de ton post en php, il aurait fallu écrire:
echo "userpasse ".sha1($salt.sha1($password)."\n");
et non
echo "userpasse ".sha1($salt.sha1($password))."\n";
# ou sinon
Posté par maboiteaspam . Évalué à 1.
Tu aurais pu lancer un process php avec le script en paramètre, je crois que c'est l'option -r, le seul but du script étant de faire le calcul via php et non bash itself.
C'est grosso modo ce que j'ai fais la dernière fois que j'ai rencontré ce problème, en l’occurrence c'était une somme java qui ne donnait pas les bon résultats,
alors depuis php on instancié java uniquement pour calculer la somme.
Pas terrible,
mais quand tu n'as pas le choix, ça marche !
[^] # Re: ou sinon
Posté par Philippe M (site web personnel) . Évalué à 0.
J'y ai bien pensé sauf que je voulais pas empiler les programmes et puis je préssentais une bataille pour passer certaine infos en paramètres.
Born to Kill EndUser !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.