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 ??
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 …).
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
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.
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 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:) …
à 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:
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
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