CryptThat - Sécurisez vos applications PHP.

Statut
N'est pas ouverte pour d'autres réponses.

SkyzohKey

Membre
Inscription
5 Juillet 2014
Messages
14
Réactions
9
Points
78
Yolo.
Je décide aujourd'hui de poster la dernière classe PHP que j'ai codé. Cette petite classe va tout simplement vous permettre de génerer un hash unique avec 3 salts (1 salt, 1 peper, 1 oignon ^^) donc impossible à casser ou déchiffrer.

Voilà donc le lien de téléchargement :

Pour l'utiliser c'est très simple (il y'a une démo du nom de index.php inclus dans le zip au besoin) :
PHP:
/**
*    Crypt-That Usage.
*    By ThanosS.
**/

// Require the lib' to work.
require_once("CryptThat.class.php");

// Initialize the 3 key that the lib' will use.
/** You need to change it for each app ! **/
$params = array("trEYehaz_ge8ec8", "wuYEh#KA6A3@utRaPH&CReM_7?-rUth+", "tR5sesta8AZ#bRuyE#r");

// Init the lib'.
$crypter = new CryptThat($params);

// Crypt the pass using the lib'.
$superPassword = $crypter->getHash($_GET["password"]);

// Print the hash.
echo("Password hash: " . $superPassword);

Voilà voilà ;)
 
Inscription
20 Octobre 2013
Messages
1 862
Réactions
1 024
Points
2 466
Merci pour le tutoriel, je comptais faire du str shuffle une fois le code crypté en base64 ou en md5 mais ta technique est beaucoup mieux merci.
 

SkyzohKey

Membre
Inscription
5 Juillet 2014
Messages
14
Réactions
9
Points
78
On va dire que ma librairie est plus rapide à mettre en oeuvre et permet d'avoir des mots de passes (ou des hashs) incassables, même en utilisant un dictionnaire de mots de passes. Ceci est effectué grâce à l'utilisation de 3 salts qui sont ensuite cryptés les uns dans les autres, ce qui ameiliore donc le niveau élevé du hash. De plus, j'ai fais en sorte que l'execution de la fonction getHash() ne prenne pas plus de 0.003 secondes afin de ne pas alourdir vos scripts ;).

Skyzoh.
 
Dernière édition:
Inscription
20 Octobre 2013
Messages
1 862
Réactions
1 024
Points
2 466
On va dire que ma librairie est plus rapide à mettre en oeuvre et permet d'avoir des mots de passes (ou des hashs) incassables, même en utilisant un dictionnaire de mots de passes. Ceci est effectué grâce à l'utilisation de 1 salts qui sont ensuite cryptés les uns dans les autres, ce qui ameiliore donc le niveau élevé du hash. De plus, j'ai fais en sorte que l'execution de la fonction getHash() ne prenne pas plus de 0.003 secondes afin de ne pas alourdir vos scripts ;).

Skyzoh.
c'est un hash qui est dynamique ?
 

SkyzohKey

Membre
Inscription
5 Juillet 2014
Messages
14
Réactions
9
Points
78
En gros, imagine que tu crypte le mot Koutedar avec les clées "lol", "mdr", "troll". Le hash sera donc : a59ed0e7fcc12ae2bb9dc2a5eeb75889aaa34f25f436d764db2243014f4be962.
Maintenant si tu le rehash avec les mêmes clées, le hash sera toujours le même. Imaginons maintenant que je crypte le mot Koutedar avec les clées "le", "vendeur", "rofl". Les clées ont changé et du coup le hash devient : 93da3b7e1168f37037a1daa1590f4b392636f23c555908e310f400960785548b.

L'utilité de ce système et de garder le contrôle sur le hash (enfin un minimum) afin de pouvoir utiliser différentes clées pour différents sites ou différentes parties du site (par exemple les membres auront un password hashé avec les clées "Ffe4fef84_@$dFRdzepld8$^fr^e5de", "srdSEDZ65dyg@6473é'(é-édemdfe" et "Dd5ed4R(ç'_#{)fd4sd5" tandis que les mots de passes admins auront un password hashé avec d'autres clées, ça peut éviter les problèmes de droits sur un site avec un système de rang. De plus, l'injection SQL via le hash devient automatiquement impossible une fois le mot hashé.

Attention: une fois un mot, une phrase, une lettre ou un chiffre hashé il devient impossible de le décrypter. Même la méthode bruteforce n'aboutira à rien vu que chaque système utilise des clées différentes.
 
Inscription
20 Octobre 2013
Messages
1 862
Réactions
1 024
Points
2 466
En gros, imagine que tu crypte le mot Koutedar avec les clées "lol", "mdr", "troll". Le hash sera donc : a59ed0e7fcc12ae2bb9dc2a5eeb75889aaa34f25f436d764db2243014f4be962.
Maintenant si tu le rehash avec les mêmes clées, le hash sera toujours le même. Imaginons maintenant que je crypte le mot Koutedar avec les clées "le", "vendeur", "rofl". Les clées ont changé et du coup le hash devient : 93da3b7e1168f37037a1daa1590f4b392636f23c555908e310f400960785548b.

L'utilité de ce système et de garder le contrôle sur le hash (enfin un minimum) afin de pouvoir utiliser différentes clées pour différents sites ou différentes parties du site (par exemple les membres auront un password hashé avec les clées "Ffe4fef84_@$dFRdzepld8$^fr^e5de", "srdSEDZ65dyg@6473é'(é-édemdfe" et "Dd5ed4R(ç'_#{)fd4sd5" tandis que les mots de passes admins auront un password hashé avec d'autres clées, ça peut éviter les problèmes de droits sur un site avec un système de rang. De plus, l'injection SQL via le hash devient automatiquement impossible une fois le mot hashé.

Attention: une fois un mot, une phrase, une lettre ou un chiffre hashé il devient impossible de le décrypter. Même la méthode bruteforce n'aboutira à rien vu que chaque système utilise des clées différentes.
Merci pour ta reponse qu'on peut appeler roman.:non:
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut