begin process at 2012 02 13 09:38:20
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caratère

 > BRUTE FORCE PHP

BRUTE FORCE PHP


 Information sur la source

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Chaîne de caratère Classé sous :brute force, bruteforce, combinaison, php Niveau :Initié Date de création :02/05/2009 Vu :9 474

Auteur : nax333

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note


 Description

Une fonction qui trouve toutes les combinaisons de n caractères dans un charset donné.
Une version récursive (plus jolie) et une version linéaire. Je ne sais pas laquelle est la plus performante, mais de toute manière si vous recherchez la performance autant traduire ce code dans un autre langage.

Source

  • <?
  • function map($lettre)
  • echo chr($lettre);
  • $charset = range(97,122);
  • $num = count($charset);
  • $last = $num-1;
  • $length = 5;
  • $mot = array();
  • while($mot[$length - 1] <= $last)
  • {
  • for($i = 0; $i < $num; ++$i)
  • {
  • $mot[0] = $i;
  • array_walk($mot, 'map');
  • echo "\n";
  • }
  • $j = 0;
  • while($mot[$j] == $last)
  • {
  • $mot[$j] = 0;
  • ++$j;
  • }
  • if($j == $length)
  • break;
  • $mot[$j]++;
  • }
  • ?>
  • En récursif :
  • <?php
  • $charset = range(97, 122);
  • function recurse($width, $position, $base)
  • {
  • global $charset;
  • foreach($charset as $char)
  • {
  • if ($position < $width - 1)
  • recurse($width, $position + 1, $base.chr($char));
  • echo $base.chr($char)."\n";
  • // ici on fait ce que l'on veut du mot là je l'affiche.
  • }
  • }
  • $maxChars = 3;
  • for($width = 1; $width < $maxChars+1; ++$width)
  • recurse($width, 0, "");
  • ?>
<?
	function map($lettre)
		echo chr($lettre);
	
	$charset = range(97,122);
	$num = count($charset);
	$last = $num-1;
	$length = 5;
	
	$mot = array();
	while($mot[$length - 1] <= $last)
	{		
		for($i = 0; $i < $num; ++$i)
		{
			$mot[0] = $i;
			array_walk($mot, 'map');
			echo "\n";
		}
		
		$j = 0;
		while($mot[$j] == $last)
		{
			$mot[$j] = 0;
			++$j;
		}
		
		if($j == $length)
			break;
			
		$mot[$j]++;
	}
?>


En récursif :
<?php
$charset = range(97, 122);

function recurse($width, $position, $base)
{
    global $charset;
    foreach($charset as $char)
    {
        if ($position < $width - 1)
            recurse($width, $position + 1, $base.chr($char));
        echo $base.chr($char)."\n";
//      ici on fait ce que l'on veut du mot là je l'affiche.
	}
}

$maxChars = 3;
for($width = 1; $width < $maxChars+1; ++$width)
    recurse($width, 0, "");
?>



 Sources du même auteur

FONCTION GET EN PHP : RECUPERER UNE PAGE SUR UN SITE DISTANT
Source avec Zip LABYRINTHES EN PHP (GD + HTML) GÉNÉRATION + RÉSOLUTION
Source avec Zip Source avec une capture CAPTCHA ANTI-BOT + FICHIER SON (WAV)

 Sources de la même categorie

ADRESSE ABSOLUE DE LA PAGE EN COURS, AVEC VARIABLES $_GET par Dariumis
Source avec Zip CLASSE D'OBJET DE RECHERCHE DE MOTS DANS DES TABLEAUX ET/OU ... par 8Tnerolf8
RÉCUPÉRER LES MINIATURES D'UNE VIDÉO YOUTUBE par tefa24600
Source avec Zip Source avec une capture CONVERTISSEUR DE NOMBRES EN TEXTE par macruz
Source avec Zip Source avec une capture CODAGE TEXTE >HTML, ISO, SPECIALCHARS, URL ET DECODAGE par Salva9473

 Sources en rapport avec celle ci

Source avec Zip COLLECTION.CLASS.MIN.PHP par thunderhunter
EXEMPLE D'APPLICATION DE L'ALGORITHME DE DIJKSTRA EN PHP par philtr8
Source avec Zip Source avec une capture EL COYOTOS LIVRE D'OR PHP 5 par elcoyotos
Source avec Zip Source avec une capture PAGINATION + FICHIER CSS par profdi
Source avec Zip CLASS MYSQL 5/PHP5 AVEC GESTION DES EXCEPTION ET DES REQUÊTE... par devil_may_cry

Commentaires et avis

Commentaire de Arto_8000 le 03/05/2009 00:15:58

Tu as toi même conclut que ce n'était pas performant et que si on voudrait l'utiliser il faudrait le refaire dans un autre langage ... pourquoi as-tu mis ce script en ligne ? D'autant plus qu'il existe déjà des sources similaires.

Commentaire de wanou95b le 03/05/2009 10:29:33

Je suis complètement d'accord avec Arto_8000. Il faut arrêter de mettre des scripts en ligne pour se faire plaisir .... Ce n'est pas le but recherché et cela devient franchement agaçant.

Commentaire de kohntark le 03/05/2009 21:47:49

Je suis complètement pas d'accord avec vous :o)
Autant je ne vois rien à redire sur certaines sources qui ne fonctionnent même pas, autant ce genre de commentaires m'agacent lorsqu'ils sont portés sur des sources fonctionnelles qui ont leur intérêt.

Pas le plus performant pour ce genre de chose, ça reste à voir, l'utilisation peut être multiple.

La dernière source d'Arto (PHP CHAT) est intéressante et utile, il n'en demeure pas moins qu'elle n'est pas du tout performante comparée à d'autres langages, et alors ?


Cordialement,


Kohntark-

Commentaire de kohntark le 03/05/2009 21:56:00

... et puis pour la similarité d'autres sources, c'est vrai, il y en a déjà qui s'en rapprochent, ... tout comme des dizaines de scripts de chat.

Commentaire de Arto_8000 le 03/05/2009 22:22:24

Mon script ... pas performant ? Tu en serais surpris, j'ai passé une partie du développement à minimiser le temps de réponse du script. Un minimum de requête est fait à la base de donnée (pour les requêtes fréquentes) et le code est optimiser pour rouler le plus rapidement possible sur PHP.

Des dizaines de script de chat ? Ce qui est présent comme source de chat sur le site fonctionne plus ou moins bien, aucune d'entre elle n'est extensible et aucune ne propose même un système pour gère les salles ce qui est quelque chose de base de mon chat. C'est comme si tu me disais qu'une Ferrari ça se rapproche d'une LADA.

Pour revenir au point de la performance, la première chose que l'on recherche dans un script qui fait du brute force, c'est la performance. Plus un script de brute force est performant meilleur il est. À vrai dire, la performance est à peu près le seul critère sur lequel on peut juger un script de brute force, ce qui n'est pas le cas d'un chat. Ta comparaison était très mauvaise.

Commentaire de tofinard le 04/05/2009 07:58:59

mais mais mais; il y en à deux qui n'ont pas fait caca !!! surtout qu'ils ont légèrement oublié que la plupart des algos imaginables existent déja en C, en assembleur, pourtant on ne s'est pas arrété là (heureusement non?) donc ok pour préciser que ça existe déja, d'accord pour préciser, aprés l'auteur lui-même d'ailleurs, qu'il y a plus performant, mais lacher son commentaire accusateur sur un algo qui en plus est un bon exemple de script ecrit en itératif ET en récursif, je vois pas l'interet... d'ailleurs, ça s'applique aussi à mon propre commentaire ya pas trop d'interet (un peu d'introspection quand même) mais bon, sur ce... je vais faire caca, ça ira mieux.

Commentaire de kohntark le 04/05/2009 07:59:10

Je suis entièrement d'accord, sauf que :
- "Mon script ... pas performant ?"
=> j'ai dit : "qu'elle n'est pas du tout performante comparée à d'autres langages"

- "[...]script qui fait du brute force, c'est la performance"
=> j'ai dit : "l'utilisation peut être multiple."

- "À vrai dire, la performance est à peu près le seul critère sur lequel on peut juger un script de brute force, ce qui n'est pas le cas d'un chat"
=> pas le seul critère effectivement, mais il faut bien reconnaitre que la rapidité est très importante également.
Ton chat, si bien écrit soit il, sera toujours en deçà d'un développement dans un autre langage côté performances. Pour une dizaine de personnes ça n'a aucune importance, par contre j'aimerai bien voir avec 30, 60, 100 chatteurs ?? A mon humble petit avis ça ramera grave et ça plantera rapidement
Ce n'est pas pour cela que je vais te dire "ton script ne sert à rien parce qu'il est plus performant dans un autre langage", bien au contraire

Enfin bref, je te l'accorde, je pousse un peu loin la comparaison mais les "Il faut arrêter de mettre des scripts en ligne pour se faire plaisir" and co m'agacent lorsqu'ils ne sont pas pleinement justifiés.Ils ne font que décourager les gens à poster.

Cordialement,


Kohntark-

Commentaire de nax333 le 04/05/2009 19:49:09

Mon script est peut être lent (2 X plus que l'équivalent python) mais c'est inhérent au langage,et par rapport à d'autre scripts qui ont le même résultat je ne sais pas.

Merci à ceux qui me soutienne. Pour les autres, bien sur que l'on peut le faire dans un autre langage de manière plus rapide, mais ce n'est pas forcément nécessaire.

Commentaire de Sebounet31 le 05/05/2009 20:28:41 8/10

Moi, j'aime bien :D

Simple. Accessible.

Commentaire de SuperRaplapla le 24/08/2009 14:25:14

Bonjour,
En testant la fonction récursive, j'aperçois des doublons parasites, serait-ce possible de les éliminer autrement que par des tests conditionnels (ce que j'ai fait) ? Merci d'avance !
PS j'ai mis 10 ;-)

Commentaire de blooddrunk le 30/11/2009 23:28:47

euh je suis pas du tous caller qu'elle qu'un pourrait m'expliquer comment fonctionne se logiciel avec quel logiciel et a quoi il sert.

dans l'attente d'une réponse clair

merci

Commentaire de liquidd666 le 27/08/2010 11:14:30

ce code ne donne pas les résultats souhaités.
je donne un exemple du resultat de la version recursive avec : $maxChars = 5;
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
aa
ab
ac
ad
ae
af
ag
ah
ai
aj
ak
al
am
an
ao
ap
aq
ar
as
at
au
av
aw
ax
ay
az
a
aaa
aab
aac
aad
aae
aaf
aag
aah
aai
aaj
aak
aal
aam
aan
aao
aap
aaq
aar
aas
aat
aau
aav
aaw
aax
aay
aaz
aa
a


Comme vous pouvez voir seulment le dernier charactère de chaque bloc est modifié et le résultat "aa" est double.
ce code est donc pas valable. une solution au problèmme ?
(mon seul objectif c'est de tester la sécurité de mes propres sites web.)

Commentaire de liquidd666 le 27/08/2010 11:15:12

et en plus au lieu de donner 5 charactères il donne que 3 ...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

[PHP] Algorithme, Combinaison, Demande d'aide. [ par krochon75012 ] Bonjour à tous, J'ai pour projet de développer une application permettant à partir d'une liste de différents objet ayant tous différentes caractérist Php et mode console [ par agparchitecture ] Bonjour à tous, Je vient de découvrir php en mode console. Cependant je me pose la question du comment peut-on mettre de la couleur dans la console ( iframe voilà faire apparaître mon php [ par speedylol ] bonjour ;-) voilà comment faire apparaître le titre de mes script php qui son afficher dans mon iframe la partie en rouge ? [code=html] <!DOCTYPE ht Redirection depuis index.php [ par Elisa23 ] Bonjour, J'ai fait un site en Anglais et en Français. Les deux site sont hébergés au même endroit. Je vous ai fait une petite arborescence pour essay Download à partir d'une page php [ par Pins38 ] Bonsoir, je voudrais que les utilisateurs de mon site puissent télécharger un fichier à partir de cette commande : .txt"><img src="images/enregistrer methode de synchronisation en php (threads) [ par hanona84 ] slt tous le monde je cherche une methode de synchronisation en php par exemple threads et merci de me donner un exemple réel en utilisant une base d php version [ par fraichor ] Salut mes eternels sauveurs j explore le typo3 et pour cela j aimerais l installer en local. malheureusement , il ne fonctionne k a partir de la vers Insérer les données d'un formulaire généré en php/Mysql [ par nlsitdeo ] Bonjour, Je souhaiterais insérer des données d'un formulaire dans une table commande sachant que les champs de ce formulaire sont déjà générés par u php my admin [ par menyarito ] salut! je suis entraine de faire un script qui permet d'augmenter l'ensemble des prix de vente finaux de 10%.Il marche mais il ne peut pas traiter cha Programmation php!! [ par lorninette ] Voilà j'ai une base de données sous sql server 2008 et je programme avec php, mon but est de créer une interface de statistiques, c'est à dire affiche


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 8,845 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales