Crytper une chaine dans un script Shell (BASH)

Le
jififix
Salut à tous,

Je dois faire un script shell sous BASH qui doit demander la saisie
d'une chaine (ça c'est bon).
Ensuite cette chaine doit être cryptée et être stocké dans un fichier
txt.
C'est là que je bolque je n'arrive pas à utiliser la commande
crypt() dans mon script.(j'ai d'ailleurs du mal à la comprendre,
oui j'ai fait un "man crypt").

################################
echo "Saissez votre pass : "
read motdepasse
echo "Votre password est : $motdepasse"
echo "Votre mot de passe va être crypté.
crypt.. et après je bloque.

echo "Votre mot de passe crypté est : $motdepasse"
###############################

Est-ce que je fais fausse route ? Est-ce crypt() qu'il faut utiliser ?
Si oui comment ? Auriez-vous des exemples ?

Je m'en remets aux Gouroux du NG ;)))

Merci beaucoup de votre aide

J.

PS: Je précise que je dois passer à tout prix par un script shell pour
générer la chaine cryptée, si possible du Shell pur ;)
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Unknown
Le #462248
C'est là que je bolque... je n'arrive pas à utiliser la commande
crypt() dans mon script....(j'ai d'ailleurs du mal à la comprendre,
oui j'ai fait un "man crypt")....


crypt c'est pour du C

openssl est la pour t'aider :

pour crypter avec des :

echo $tachaineacrypter | openssl enc -e -des -k $passwd > texte.crypte

pour décrypter :
openssl enc -d -des -k $passwd < texte.crypte

par défaut ca s'affiche à l'écran, donc pour le metre dans une variable :
txt=`openssl enc -d -des -k $passwd < texte.crypte`

voila voila.
PS : DES n'est pas obligatoire plein d'autre sont possible : man openssl :)
aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb aes-256-cbc
aes-256-ecb base64 bf bf-cbc bf-cfb
bf-ecb bf-ofb cast cast-cbc cast5-cbc
cast5-cfb cast5-ecb cast5-ofb des des-cbc
des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb
des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb
des-ofb des3 desx rc2 rc2-40-cbc
rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb
rc4 rc4-40

Par contre pour la différence entre chaque ...

JustMe
Le #462247
jififix wrote:

Salut à tous,

Je dois faire un script shell sous BASH qui doit demander la saisie
d'une chaine (ça c'est bon).
Ensuite cette chaine doit être cryptée et être stocké dans un fichier
txt....
C'est là que je bolque... je n'arrive pas à utiliser la commande
crypt() dans mon script....(j'ai d'ailleurs du mal à la comprendre,
oui j'ai fait un "man crypt")....



crypt() est une fonction a appeler en C (par exemple)...

################################
echo "Saissez votre pass : "
read motdepasse
echo "Votre password est : $motdepasse"
echo "Votre mot de passe va être crypté.
crypt........ et après je bloque....

echo "Votre mot de passe crypté est : $motdepasse"
###############################

Est-ce que je fais fausse route ? Est-ce crypt() qu'il faut utiliser ?
Si oui comment ? Auriez-vous des exemples ?

Je m'en remets aux Gouroux du NG ;)))

Merci beaucoup de votre aide

J.

PS: Je précise que je dois passer à tout prix par un script shell pour
générer la chaine cryptée, si possible du Shell pur ;)


mna
Le #462246

Salut à tous,

[...]


salut

peut être avec md5sum ou sha1sum qui vont pouvoir calculer les
checksums associés.

A+

FAb
Le #462245
JustMe
jififix wrote:

Salut à tous,
Je dois faire un script shell sous BASH qui doit demander la saisie



C'est pour un devoir ? c'est pas bien de se faire aider ;0)

crypt() est une fonction a appeler en C (par exemple)...


man 3 crypt --> htpasswd


DominiX
Le #462244
ici même:,
jififix
Salut à tous,

Je dois faire un script shell sous BASH qui doit demander la saisie
d'une chaine (ça c'est bon).
Ensuite cette chaine doit être cryptée et être stocké dans un fichier
txt....


a partir d'ici la meilleure solution a mon humble avis c'est openSSL.
c'est généralement installé ou dispo et il y a plein d'option en ligne
de commande. {cf post de Unknow}

HTH

-- dominix

jififix
Le #462243
Salut,

Merci de tes conseils.
Je vais voir directement la piste OpenSSL...

Ca semble se bien se rapprocher de ce que je veux faire.

thx
J.

C'est là que je bolque... je n'arrive pas à utiliser la commande
crypt() dans mon script....(j'ai d'ailleurs du mal à la comprendre,
oui j'ai fait un "man crypt")....



crypt c'est pour du C

openssl est la pour t'aider :

pour crypter avec des :

echo $tachaineacrypter | openssl enc -e -des -k $passwd > texte.crypte

pour décrypter :
openssl enc -d -des -k $passwd < texte.crypte

par défaut ca s'affiche à l'écran, donc pour le metre dans une variable :
txt=`openssl enc -d -des -k $passwd < texte.crypte`

voila voila.
PS : DES n'est pas obligatoire plein d'autre sont possible : man openssl :)
aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb aes-256-cbc
aes-256-ecb base64 bf bf-cbc bf-cfb
bf-ecb bf-ofb cast cast-cbc cast5-cbc
cast5-cfb cast5-ecb cast5-ofb des des-cbc
des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb
des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb
des-ofb des3 desx rc2 rc2-40-cbc
rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb
rc4 rc4-40

Par contre pour la différence entre chaque ...




jififix
Le #462242
C'est pour un devoir ? c'est pas bien de se faire aider ;0)


Arf.... on va dire que c'est pour un devoir... ;)))

J.

Unknown
Le #462241
Le Mon, 10 May 2004 10:34:01 +0200, jififix a écrit :

Et par rapport à la commande openssl ? J'ai de bon résultats mais...
Est-ce plus dangeureux ? ou un peu plus propre ?
De là...je dirais que c'est pas mal... maintenant....


avec openssl pour éviter que les passwords soient en ligne de commande,
tu peux les stocker dans un fichier.
Ensuite les risques portent sur l'accès aux fichiers temporaires.
Mon conseil seraient plutot de jouer avec une clef asymétrique. AU début
tu demandes à l'utilisateur de générer sa clef publique/privé et
ensuite tu cryptes avec sa clef publique qui peut se trouver dans un
répertoire accessible à tous et lui décrypte avec sa clef privée qui
se situe dans un répertoire accessible uniquement à lui.

ensuite entre perl et openssl la criticté est plus liée aux algorithmes
et a leur impélmentation qu'a l'outil en lui même.

Stephane Chazelas
Le #462240
Si le but est d'obtenir un chiffrement similaire a celui
d'/etc/passwd, certains systemes ont une commande "crypt"

encrypted_passwd=$(crypt -- "$passwd" ZZ)
"ZZ" est le "salt", deux characteres au choix.

Ce n'est pas une bonne idee de l'utiliser toutefois car si
quelqu'un fait un ps a ce moment-la, il verra le passwd en
clair. De plus, sur d'autre systemes, la commande crypt peut
avoir une toute autre fonction.

Le mieux est d'utiliser perl (en general, on prefere d'ailleurs
ecrire des script perl que bash, c'est plus propre et plus
portable).

En shell avec perl :

encrypted_passwd=$(
perl -0777 -lne 'print crypt($_, "ZZ")' << E
$passwd
E
)

(pas testé)

--
Stéphane
jififix
Le #462083
Et par rapport à la commande openssl ? J'ai de bon résultats mais...
Est-ce plus dangeureux ? ou un peu plus propre ?
De là...je dirais que c'est pas mal... maintenant....

Qu'est-ce t'en penses ?

J.


Si le but est d'obtenir un chiffrement similaire a celui
d'/etc/passwd, certains systemes ont une commande "crypt"

encrypted_passwd=$(crypt -- "$passwd" ZZ)
"ZZ" est le "salt", deux characteres au choix.

Ce n'est pas une bonne idee de l'utiliser toutefois car si
quelqu'un fait un ps a ce moment-la, il verra le passwd en
clair. De plus, sur d'autre systemes, la commande crypt peut
avoir une toute autre fonction.

Le mieux est d'utiliser perl (en general, on prefere d'ailleurs
ecrire des script perl que bash, c'est plus propre et plus
portable).

En shell avec perl :

encrypted_passwd=$(
perl -0777 -lne 'print crypt($_, "ZZ")' << E
$passwd
E
)

(pas testé)



Publicité
Poster une réponse
Anonyme