Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Crytper une chaine dans un script Shell (BASH)

14 réponses
Avatar
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 ;)

10 réponses

1 2
Avatar
Unknown
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 ...

Avatar
JustMe
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 ;)


Avatar
mna

Salut à tous,

[...]


salut

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

A+

Avatar
FAb
JustMe writes:

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


Avatar
DominiX
ici même:,
jififix a écrit
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

Avatar
jififix
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 ...




Avatar
jififix
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.

Avatar
Unknown
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.

Avatar
Stephane Chazelas
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
Avatar
jififix
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é)



1 2