[Résolu] Crypter une chaine de caractère

Salut à tous,

Je voudrais savoir si il existe un outils qui pourrait me permettre d’encrypter une chaine de caractère, en l’occurrence un mot de passe et qui me permettrai de choisir le type d’encryptage.

Petit exemple utopique ?

Et hop ! Cela me retournerai $2$ERfg67uI!EZSDCG. Et je pourrai le mettre dans un fichier de configuration. Et spécifier encrypt method = md5 (tout ceci est de la fiction :wink: )

A part l’outil grub-md5-crypt je n’en vois pas d’autre.

Merci de vos lecture,

p.s.: j’espère que je me suis bien exprimé ? :stuck_out_tongue:

Ceci?

$ aptitude show mcrypt Paquet : mcrypt État: non installé Version : 2.6.4-3.2 Priorité : optionnel Section : utils Responsable : RISKO Gergely <risko@debian.org> Taille décompressée : 270k Dépend: libc6 (>= 2.3.6-6), libmcrypt4 (>= 2.4.22-1), libmhash2 (>= 0.8.15-1), zlib1g (>= 1:1.2.1) Description : Replacement for old unix crypt(1) mcrypt is a crypting program, intended to be replacement for the old unix crypt(1). But it can do a lot more, since with its libmcrypt library it can encrypt and decrypt with the following alogirhtms: BLOWFISH, TWOFISH, DES, TripleDES, 3-WAY, SAFER-sk64, SAFER-sk128, SAFER+, OKI97, GOST, RC2, RC6, MARS, IDEA, RIJNDAEL-128, RIJNDAEL-192, SERPENT, RIJNDAEL-256, CAST-128 (known as CAST5), CAST-256, ARCFOUR, ENIGMA, PANAMA, XTEA and WAKE.

$ mkpasswd motdepasee GB
GBPJ4m.l9wYnY
$ dpkg -S bin/mkpasswd
whois: /usr/bin/mkpasswd
francois@bling:~$

Voilà.

Cool merci :smiley:

mcrypt ne fait pas cela sur une chaine de caractère.

[quote]Mcrypt encrypts and decrypts files with symmetric encryption algorithms.
[/quote]

Je sais pas ce que c’est GB mais j’ai utilisé l’option -H qui me permet de spécifier le type de cryptage.

[code]# mkpasswd motdepasee -H md5
$1$GQHVU78l$P06gJck3iRpjcADXhVEmw/

mkpasswd motdepasee -H DES

k5p/zqpBev7Aw
[/code]

A part DES et md5 je n’ai pas trouver d’autre hash possible, et le man est très peu bavard. Enfin cela me convient pour ce que j’ai à faire. :wink:

Ne pas confondre chiffrement (encryption) et hachage (hash).

DES n’est pas un algo de hachage (irréversible) mais de chiffrement (réversible). MD5 est un algo de hachage. Si tu ne dois pas reconstituer la chaîne de départ il vaut mieux hacher que chiffrer. Dans le cas contraire, évite DES qui n’a pas la réputation d’être très sûr. Choisi Rijndael, par exemple. En plus c’est du Belge!

Si ton problème est de chiffrer/déchiffrer, tu as tort de passer à côté de mcrypt:

$ mcrypt --list cast-128 (16): cbc cfb ctr ecb ncfb nofb ofb gost (32): cbc cfb ctr ecb ncfb nofb ofb rijndael-128 (32): cbc cfb ctr ecb ncfb nofb ofb twofish (32): cbc cfb ctr ecb ncfb nofb ofb arcfour (256): stream cast-256 (32): cbc cfb ctr ecb ncfb nofb ofb loki97 (32): cbc cfb ctr ecb ncfb nofb ofb rijndael-192 (32): cbc cfb ctr ecb ncfb nofb ofb saferplus (32): cbc cfb ctr ecb ncfb nofb ofb wake (32): stream blowfish-compat (56): cbc cfb ctr ecb ncfb nofb ofb des (8): cbc cfb ctr ecb ncfb nofb ofb rijndael-256 (32): cbc cfb ctr ecb ncfb nofb ofb serpent (32): cbc cfb ctr ecb ncfb nofb ofb xtea (16): cbc cfb ctr ecb ncfb nofb ofb blowfish (56): cbc cfb ctr ecb ncfb nofb ofb enigma (13): stream rc2 (128): cbc cfb ctr ecb ncfb nofb ofb tripledes (24): cbc cfb ctr ecb ncfb nofb ofb

[quote=“ripat”]DES n’est pas un algo de hachage (irréversible) mais de chiffrement (réversible). MD5 est un algo de hachage. Si tu ne dois pas reconstituer la chaîne de départ il vaut mieux hacher que chiffrer. Dans le cas contraire, évite DES qui n’a pas la réputation d’être très sûr. Choisi Rijndael, par exemple. En plus c’est du Belge!
[/quote]

Merci des ces précisions, je dormirai moins bête ce soir :wink:

[quote=“ripat”]
Si ton problème est de chiffrer/déchiffrer, tu as tort de passer à côté de mcrypt:

$ mcrypt --list cast-128 (16): cbc cfb ctr ecb ncfb nofb ofb gost (32): cbc cfb ctr ecb ncfb nofb ofb rijndael-128 (32): cbc cfb ctr ecb ncfb nofb ofb twofish (32): cbc cfb ctr ecb ncfb nofb ofb arcfour (256): stream cast-256 (32): cbc cfb ctr ecb ncfb nofb ofb loki97 (32): cbc cfb ctr ecb ncfb nofb ofb rijndael-192 (32): cbc cfb ctr ecb ncfb nofb ofb saferplus (32): cbc cfb ctr ecb ncfb nofb ofb wake (32): stream blowfish-compat (56): cbc cfb ctr ecb ncfb nofb ofb des (8): cbc cfb ctr ecb ncfb nofb ofb rijndael-256 (32): cbc cfb ctr ecb ncfb nofb ofb serpent (32): cbc cfb ctr ecb ncfb nofb ofb xtea (16): cbc cfb ctr ecb ncfb nofb ofb blowfish (56): cbc cfb ctr ecb ncfb nofb ofb enigma (13): stream rc2 (128): cbc cfb ctr ecb ncfb nofb ofb tripledes (24): cbc cfb ctr ecb ncfb nofb ofb[/quote]

Oui j’ai vu la liste, mais le but est de chiffrer un mot de passe de manière toute simple, et j’ai peur quand tapant mon mdp dans un fichier puis en utilisant mcrypt je n’ai pas le même résultat…enfin il ne tiens qu’a moi de le tester.

Par contre pour le décryptage ca à l’air super intéressant. :slightly_smiling:

En matière de mots de passe, il y a deux philosophies: soit tu haches (MD5) mais tu devras générer un nouveau mot de passe si l’utilisateur l’oublie, soit tu chiffres (crypte) et tu pourras reconstituer le mdp de départ en utilisant la clé de chiffrement.

Dans une application multi-utilisateurs, on considère le hachage comme plus sûr et plus confidentiel. Le chiffrement, par contre, offre l’avantage de réversibilité mais l’admin d’un site, par exemple, a dès lors accès à tous les mdp car la clé de chiffrement est souvent commune à tout le monde.

Au niveau de la sécurité, avant de craquer un chiffrement rijndael-256, il faut du temps, beaucoup de temps et un ordinateur “number-cruncher” super vitaminé! D’un autre côté, le hachage peut, lui aussi, être victime d’attaques de force brute du type dictionnaire.

A toi de voir.

En fait le mot de passe je le connais, mais c’est pour ne pas le mettre en clair dans les fichiers de configurations smbldap_bind.cfg de mon “futur” nouveau PDC, car sur l’actuel c’est le cas.( pas monter par moi ) C’est juste pour qu’il puisse contacter le serveur ldap.

Par contre à chaque fois que tu post tu éclaire des zones d’ombre de mes connaissances, c’est cool :smiley:

Tu pourrais envisager chiffrer ce mdp avec une phrase clé mais cette dernière doit bien être stockée quelque part. Du moins si tu veux décrypter automatiquement ce mdp pour ton application. Tu ne fais que déplacer le problème. Tu pourrais mettre ton mdp en fichier lecture seule pour samba par exemple (chmod 600). Tu limites déjà le risque. Un peu comme le fichier shadow qui contient les hach des mdp linux, et qui n’est accessible en lecture que par root.

Précision: GB est la graine dans le hachage et se tretrouve dans le deux premiers caractères:

[quote]francois@bling:~$ mkpasswd glop TT
TTGuiMUTz3I4I
francois@bling:~$ mkpasswd glop UU
UU3Jugp1kxpDM
francois@bling:~$ [/quote]
Pour vérifier que UU3Jugp1kxpDM correspond à glop, tu remarques les deux premières lettres (UU) et tu vérifies par «mkpasswd glop UU»

Bonjour,

Si je comprends bien les diverses réponses données, pour convertir une chaîne de caractères en une autre, de façon aléatoire et irréversible, il me faut donc une algo de hachage, et non pas de chiffrement.

MD5 est une algo de hachage.
MKPASSWD est une algo de chiffrement.

Cependant
man MKPASSWD
mentionne une option
-5 Like --method=md5

Donc
MKPASSWD -5
est une fonction optionnelle de hachage.

Exact ?

Domaine que je ne maitrise pas. Cela ne suffit pas?

Merci pour ton exemple Funkygoby.
Je voudrais identifier le (ou les) critère(s) qui permet(tent) de distinguer hash et encryptions dans la liste suivante :

echo test | md5sum
d8e8fca2dc0f896fd7cb4cb0031ba249 -

echo test | openssl md5
(stdin)= d8e8fca2dc0f896fd7cb4cb0031ba249

openssl passwd test
Mp9NXZoGai9yk

mkpasswd -5 test
$1$7E8gQviX$G5adwIHdGakVUCEDWnlm5.

mkpasswd test
Z3U2SBjfKZ1U2

Je constate que si l’on répète chacune de ces commandes une seconde fois (avec la même chaîne “test”) alors :

  • dans les deux premiers cas (semble-t-il, la même commande sous deux noms différents) on obtient le même résultat que lors de la première fois ;
  • dans les trois derniers cas on obtient un résultat différent que lors de la première fois.

Cela signifie-t-il que les deux premières commandes (en fait la même) sont des hash et les trois dernières des encryptions ?

Cependant “man openssl” indique pour la commande standard “passwd” :
Production de mots de passe hachés”.

À priori cela semble invalider le critère basé sur la répétition ou non du résultat. Mais peut-être qu’en fait la commande “openssl passwd” encrypte ET hash, de sorte qu’il n’y a plus réversibilité à la chaîne d’origine.

En conclusion le critère de réversibilité à la chaïne d’origine resterait donc valable : réversibilité --> hash (sans encryption).

Ce raisonnement est-il correct ?

PS : une autre question qui me vient à l’esprit : quelle est la relation logique entre mot de passe “idéal” et encryption :

  • mdp --> encryption ?
  • mdp <-- encryption ?
  • mdp <–> encryption ?
  • aucune des trois ?