Précédent   Forum des professionnels en informatique > PHP > Scripts
Scripts Forum d'entraide sur les scripts PHP téléchargés. Les meilleurs scripts PHP, la FAQ scripts PHP, toutes les FAQ PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/06/2011, 20h21   #1
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juin 2011
Messages : 9
Points : 4
Points : 4
Par défaut Transcription script génération de passe (bash -> php)

Bonjour à tous !
Je sollicite une âme charitable qui pourra me proposer l'équivalent php du script bash suivant :
Code :
1
2
3
4
5
6
7
8
9
10
#!/bin/bash
#hashapass.com method for generating passwords
export IFS="" #read will now preserve whitespace
read -rp "parameter: " PARAMETER
read -rsp "password: " PASSWORD
echo
echo -n "$PARAMETER" \
| openssl dgst -sha1 -binary -hmac "$PASSWORD" \
| openssl enc -base64 \
| cut -c 1-26
En effet, c'est un script que j'utilise sous linux pour générer des mots de passe et je voudrais l'adapter en php pour l'héberger sur une page web afin de la rendre accessible de n'importe ou.
Il me faudrait 2 champs PARAMETER et PASSWORD et un bouton "générer" et l'affichage du résultat.

En vous remerciant par avance
gogy13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2011, 11h55   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Tu as la fonction sha1() en PHP.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2011, 12h40   #3
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juin 2011
Messages : 9
Points : 4
Points : 4
Merci de ton aide Sabotage.
Le souci, c'est que je ne sais pas comment passer l'argument PARAMETER. Je ne comprends pas comment il est interprété par sha1.

Je tente :
Code :
1
2
3
<?php
echo hash_hmac('sha1', 'PARAMETER', 'PASSWORD');
?>
mais ça me renvoie :
Citation:
Fatal error: Call to undefined function: hash_hmac() in ...
Une idée ?
gogy13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2011, 13h12   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
A quoi sert ce PARAMETER ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2011, 13h28   #5
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juin 2011
Messages : 9
Points : 4
Points : 4
je crois que c'est ce qu'on appelle aussi le 'salt' (mais j'en suis pas sûr). C'est un mot en clair qui va être associé au password pour créer le pass hashé.

Regarde ici, c'est ce que je cherche à reproduire.
gogy13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2011, 13h36   #6
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
dans les commentaires de la doc SHA1() tu as des exemples de fonctions qui prennent en charge le salt.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2011, 16h51   #7
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juin 2011
Messages : 9
Points : 4
Points : 4
Ça y est j'ai trouvé. Il s'agit bien de la fonction hash_hmac()
Le souci, c'est que le serveur doit être sous php 5. Voila pourquoi j'avais un message d'erreur (free est en php 4 par défaut). Il faut ensuite ajouter base64_encode() et le tour est joué.
Ça donne :
Code :
echo base64_encode(hash_hmac('sha1', 'PARAMETER', 'PASSWORD', true));
Il me reste juste à créer la partie html (formulaire).

Par contre, comment je fais pour prendre les n premiers caractères de la chaine ainsi créée ?
gogy13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2011, 16h53   #8
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
avec substr()
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2011, 17h02   #9
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juin 2011
Messages : 9
Points : 4
Points : 4
Super.
Merci à toi !
Sujet résolu ! (Je posterai le script complet qd je l'aurai fini.)
gogy13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h11.


 
 
 
 
Partenaires

Hébergement Web