[PHP]conseil pour crypter un login - crypter login et mot de passe

Bonjour,

je suis en train de reflechir sur l’identification d’un espace membre d’un site web…

pour le mot de passe, il sera crypté en md5 + ajout d’un grain de sel, du style $pass = md5($_POST[“pass”].$graindesel);

je voudrais egalement crypter le login mais pouvoir evidemment aussi le decryper!!!
je compte eventuellement utiliser les fonctions base64_encode et base64_decode…

qu’en pensez-vous ? est-ce adapté ?
y a t-il d’autres solutions ??

merci d’avance

crypter login et mot de passe? J’aurai tendance à ne pas me servir du login, mais de l’identifiant, qui peut certainement jouer le grain de sel.

Il y a des tonnes de manières de crypter ses donnée, le but est juste de ne pas montrer sa méthode pour qu’il ne soit pas decryptable facilement… Donc fait pas la même gaff’ que moi à savoir mettre ma fonction d’encryptage dans un fichier .inc visible par tout le monde =)! Tu peux utiliser plusieurs regex aussi, ça cache rien mais ça peux vite embrouiller ^^ !

Le MD5 comme algo de cryptage, c’est loin d’être sécure … perso, ce que je fait : SHA-256 + grain de sel (8192 random) --> AES 256 --> base 64 --> compression (zip,7zip etc …).

Et avec tout ça, ça donne quoi en perf? (par rapport à un md5 + sallage)

Perf, en terme de niveau de sécurité ou le nécessaire pour faire toute cette tambouille ?
Pour le premier cas, c’est simple, il pourra se toucher pour hacker quoi que ce soit surtout que j’utilise une lib extrêmement bien faite (botan) qui utilise des buffers sécurisé (entendre par la que rien n’est écrit sur le dur et rien ne reste en ram).
Pour le temps nécessaire, boh ma foi, c’est plutôt rapide, j’ai implémenté le cryptage par streaming (par bloc), ca demande moins de ram (la taille du bloc en fait) et je peux implémenter n’importe quelle méthode de cryptage pour chaque bloc donc même si un premier bloc est décrypté, faudra décrypter le reste.
Oui chui un vrai sadique :smiley:

On est jamais assez prudent :o !
M’enfin si c’est juste pour un zone membre standard md5 + sallage suffit largement, tant qu’il n’y a pas de question d’argent etc. Enfin c’est mon point de vue…

Mais ça sert à quoi ? Au final, c’est du hashage et à une chaine d’entrée est associée une unique chaine hashée non ?
Tu crains qu’on accède à ta base et qu’on retrouve tes mots de passe en clair ? Le grain de sable est là pour ça.
Sinon, ça ne te protège pas plus de toutes les attaques côté client comme le bruteforce ou celles dues à un mot de passe trop simple… :neutre:

Edit : et si on parle de cryptage / décryptage, alors je vois pas comment on peut utiliser des algos de hashage (qui vont que dans un sens) dans l’algorithme.

On prenant celui qui va dans l’autre sens :slight_smile: !

Ca existe pas les algos inverses des algos de hashage !

tout d’abord merci pour vos reponses!

soyons clair:
je veux encrypter le login et le mot de passe (les 2)
> bien sur le mdp se sera md5+salage! (sens unique)
> pour le login, pas question de faire la meme chose car je veux aussi pouvoir decrypter le nom des clients bien sur !!
donc je vais faire base64_encode+salage et pour decryper base64_decode

en fait je cherche une fonction php d’encrypatage et de decryptage adaptée pour le login!

pour l’instant j’ai trouvé que base64_encode et base64_decode…

Bah alors qu’est qu’on attends :slight_smile: !

Crypter un login, ça sert à quoi ? :??:
(oui je sais, je commence à être chiant :paf:)

bah tout simplement parce que pour développer des algos inverses, il faudrait revoir pas mal de rêgles fondamentales des mathématiques dont sont tirés les algorithmes de hachage (si je me rappelle bien mes cours de cryptage, c’est surtout à base de nombre premier :whistle:) …

un ptit détail des specs du SHA-1 :jap:

à part ne pas pouvoir retrouver une ligne dans une base, perso je vois pas, et je vois plus ça comme une perte de temps qu’autre chose :neutre: …
mais il a sûrement ses raisons :jap:

bah si base64_encode() et base64_decode() (http://fr.php.net/base64_decode)

je pense utiliser ces fonctions…

botan est dispo par défaut en PHP ? :slight_smile:

[edit] puis le niveau de sécurité dépend du niveau de confidentialité et de critiquicité des données non?

sauf que base64 n’est pas une fonction de hachage, mais c’est pas grave [:kramoc]

Sans-Nom>c’est en C++ donc surement via un cgi.

Imaginons que demain j’arrive à acceder à ta base de données. Je trouve dedans le salt et le résultat de l’encodage en base64. Il suffit que je fasse un simple base64_decode et que je vire le salt pour récuperer le login. Donc ne te casse pas les pieds, utiliser cette fonction dans ce cas précis est totalement inutile :slight_smile:
Tu peux à la rigueur utiliser RSA, qui m’empechera de décoder le login si je n’ai accès qu’à la base, mais seules les fonctions de hashages (donc à sens unique) peuvent garantir une certaine sécurité si j’ai accès au code et à la base :wink:

Sachant que si le site n’utilise pas https, le login et le mot de passe passent en clair sur le réseau :whistle: