[C] Programme de hashage
|
21-03-2013, 22h30
(Modification du message : 21-03-2013, 22h35 par Junky.)
Message : #1
|
|
Junky
Snorky Master Messages : 228 Sujets : 35 Points: 204 Inscription : Mar 2013 |
[C] Programme de hashage
Bonjour.
Voici un programme que j'ai codé. Je vous le poste pour 2 choses: => Pour le partager (normal j'ai envie de dire et sa va dans l'idée/optique de la communauté) => Une quelconque optimisation. En aucun celui-ci fais office de tutoriel ou autre. Mais il peu être pris en exemple pour l'implémentation d'option, savoir comment vérifier qu'un char appartient a un ensemble ou autre. Le but du programme est simple. En passant les paramètres qui vont bien, on ne fait que hasher une chaine de caratères (char *crypt (const char *clef, const char *salt)) dans le format choisi: md5 blowfish sha256 sha512 Comme certains le verront surement , je me suis appuyé sur le format /etc/shadow. Le salt est par défault généré aléatoirement, mais il est possible de pouvoir mettre son propre salt (option -s). Il ne vous sera demandé que les 8 caractères. Les $n$ et le $ de fin du salt seront rajoutés automatiquement. le n entre les $ aura une valeur en fonction du type de hashage choisi: 1 - md5 2 - blowfish 5 - sha256 6 - sha512 Voici le code: Code : #include <unistd.h> voici un lien pour une meilleur vision: http://silentd.root-me.org/scripts/hash1.c.html Pour les personnes qui le téléchargerons, il vous faudrat rajouter -lcrypt comme option a gcc. Code : gcc -o hash1 hash1.c -lcrypt L'option -h vous donnera les différentes options. J'ai essayé de commenter les fonctions un maximum. Comme vous pourrez le voir, je pose trés peu de commentaire l'intérieur de celle-ci mais préfère expliquer leur fonctionnement dans un bloc de commentaire situé juste au dessus de celle-ci. Je suis ouvert à toutes "réflextions" sur le code car celles-ci ne peuvent qu'être bénéfiques. Aussi bien pour moi (faut savoir être égoîste un peu des fois :p) mais aussi pour ceux qui liront la discussion et qui désirent approfondir leur connaissances. Il doit certainement y avoir des exploitations diverses a ce code. Donc certainement des choses à en dire alors comme dirais un ami (qui se reconnaitra) "bah go!" On est loin du programme de fou qui va faire tourner la planète a l'envers hein . Je suis juste dans une démarche de partage et de "perfectionnement" aussi bien personelle que communautaire. Junky PS: vous avez la source ici: http://silentd.root-me.org/scripts/sourc...es/hash1.c Pour la sécurité, sous linux, le principal soucis est l'interface chaise/clavier
|
|
23-03-2013, 12h11
Message : #2
|
|
Junky
Snorky Master Messages : 228 Sujets : 35 Points: 204 Inscription : Mar 2013 |
RE: [C] Programme de hashage
Bonjour.
J'ai modifié le code en changeant une fonction. Ma fonction check_salt() était itérative, cad (pour ceux qui ne connaisse pas) que j'utilisais des boucles for() while(). J'ai donc décidé de la rendre récursive, cad (tjs pour ceux qui ne connaisse pas) un algorithme quil s'appelle lui-même. Voici le code de la fonction: Code : /************************************************************************ La compréhension reste assez simple. On tourne sur deux compteurs. Un qui est la longueur de l'argument pour l'option -s et l'autre la longueur de la chaine contenant les caractères autorisé. J'ai aussi modifié la fonction salt_gene() afin d'optimiser et de pouvoir implémenter correctement ma nouvelle fonction. Pour le voir en couleur et dans le contexte, c'est par ici Et pour dl directement la source c'est par là Junky. Pour la sécurité, sous linux, le principal soucis est l'interface chaise/clavier
|
|
Sujets apparemment similaires… | |||||
Sujet | Auteur | Réponses | Affichages | Dernier message | |
[C-AIDE] Fuzzer De Programme | sakiir | 2 | 1,099 |
16-05-2013, 11h21 Dernier message: Sh4dows |
|
[C] Programme Serveur/Client | Creepy_p0ney | 1 | 950 |
13-10-2012, 14h13 Dernier message: Creepy_p0ney |
Utilisateur(s) parcourant ce sujet : 1 visiteur(s)