WORLDDMT WPASS V 1.2 - UN GENERATEUR DE PASSE PAR MOT

cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 - 12 août 2008 à 23:35
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 - 15 août 2008 à 16:04
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/47586-worlddmt-wpass-v-1-2-un-generateur-de-passe-par-mot

WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
15 août 2008 à 16:04
ok je met a jour alors V 1.2

merci pour tout Wims ça été bien benefique ^^
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
15 août 2008 à 15:55
Ah, nan, le seul truc qui ressemble a ça c'est $disk, mais tu n'as pas besoin de tout ça...
Tu te prend la tête pour rien, le but est de faire partager ton code, pas de faire un tuto sur comment chargé un fichier.Je n'ai personnelement jamais utilisé //load -rs pour chargé un fichier, donc le mettre ne sert a rien du tout.Les personne qui vont testé ton code savent très bien chargé un fichier, laisse les donc le chargé comme il veulent, précise simplement quels sont les fichiers a charger.
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
15 août 2008 à 15:45
lol :p ok ^^

je demandais comme il y a $findfile(c:\,wpass.data,1)

esqu'il y a un identificateur qui remplace le "c:" pour ne pas precisé rien que c:\ que ça peut etre c:\ d:\ ou autre

car c'est un fichier dans un dossier qui s'appel "WorldDMT Wpass V 1.0"

donc si on met load -rs $qt($findfile($mircdir,wpass.data,1)) le dossier doit forcement etre dans le dossier mIRC

si c'est pas dans le dossier mIRC on ne peu pas utilisé l'identificateur "$mircdir"
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
15 août 2008 à 15:31
La différence, c'est que l'alias va t'éviter de répété $qt($scriptdir....) a chaque fois, ça permet d'être plus clair, mais sinon, ya pas de différence, mettre a chaque coup le $qt($scriptdir..) fonctionnera pareil.

"et ya pas un identificateur de system entier (c:\,d:\,ect.) pour utilisé juste pour load?"

je n'ai pas compris lol,
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
15 août 2008 à 15:25
et c'est quoi la differance avec ou sans alias stp?

et ya pas un identificateur de system entier (c:\,d:\,ect.)

pour utilisé juste pour load?
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
15 août 2008 à 14:38
Exact, mais tu ne doit pas utiliser la variable %code, c'est moche d'utiliser une variable local pour ça, tu doit juste spécifié le path a chaque fois que tu veux accédé a tes fichiers.Une chose que font beaucoup de personnes, c'est de crée des alias locaux pour ça, du style :

alias -l wpass return $qt($scriptdirwpass.data)
et ensuite par exemple :
.unload -rs $wpass

Et pour le load de la première fois, moi je spécifie simplement les fichiers a chargés, j'estime que celui qui viens prendre des codes ici a un minimum de connaissance et qu'il s'est chargé un fichier tout seul.
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
15 août 2008 à 14:24
ok je vois

la variable "%code" est set quand on load le code donc le $scriptdir doit etre

set %code $scriptdircode.data

et pour le unload du code

unload -rs $qt($scriptdirwpass.data)

pour le load il y a une solution plus simple

ou si non load -rs (localisation a trouvé par l'utilisateur)
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
15 août 2008 à 13:56
Le but est que donc code soit accessible a tous, je n'ai pas testé, mais je pense que chez moi, il mettra facilement + de 30 seconde a trouvé le fichier.En revanche, tu n'as pas a te préoccuper ou l'user met son code, ne dis pas "non on s'en fou de $scriptdir", c'est oui, je vais utiliser $scriptdir que tu doit dire.Tu doit simplement dire de mettre le dossier nimporte ou, et de loadez les fichiers nécéssaire, après ton code doit géré les problèmes de repertoire.Ne te préoccupe pas du fait que l'user puisse déplacer le repertoire, si il le fait, c'est a lui d'unload et de reload les fichiers nécéssaire depuis le nouveau repertoire.

Pour le %i, on s'en fou que tu le remette a 1 après, dans l'ordre du code, tu fait //var %i, ce qui déclare que %i est locale, et ensuite tu lui assigne la valeur 0 pour la boucle, tu peux directement faire //var %i 0, ça sauve une ligne de code et quelque caractères.

Pour les crochets, je viens de faire un benchmark, il s'avère que j'avais bien faux comme il faut, les crochets sont largement plus rapide que $eval, ça me semble bizarre, mais bon laisse donc les crochets ^^
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
15 août 2008 à 12:35
ça va dejà pour while au lieu de

while (%k !11) var %k %k + 1 ,%final = %final $readini(%code,code,$ [ $+ [ %k ] ])

c'est plutot

while (%k !11) var %final %final $readini(%code,code,$ [ $+ [ %k ] ]),%k = %k + 1

j'avais pas fais attention que le inc etait apres le %final :p mais ça va dejà

pareil pour

while (%i !31) var %r %r $+ $chr($ [ $+ [ %i ] ]),%i = %i + 1

j'attend la suite sur les crochets pour mettre le code a jour
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
15 août 2008 à 11:53
Salut Wims
dejà merci d'avoir eus le temp de regarder mon code et me corriger

"si mirc est installé dans nimporte quel autre repertoire que c:\, on est bien baisé ^^"

j'avais précisé dans la conclusion de mettre dans "C:" avant l'installation

pour ".unload -rs $shortfn($findfile(C:\,wpass.data,1))"

quand j'avais testé le code etait dans un dossier dans le bureau ça freeze mais pas 30 min je ne sais pas si chez d'autre ça doit freezé autant, mais ça freese pour quelque petites secondes a peut pres 3 a 5 sec. rien que

bref le but etait, si par hazar il avait le script dans "bureau" et il decide de le mettre dans un dossier a part comme menage de son bureau ou autre pour que ça trouve le script et ça peut etre aussi comme tu dis "load/unload -rs $qt($findfile(c:\,wpass.data,1))"

mais je me rend compte d'apres ton commentaire qui m'a attiré l'attention que ça change rien :)
j'avais juste mis pour apprendre quelque chose, mais bon meme si on fait $findfile sur load et qu'il change l'emplacement du code, il va plus fonctionné alors ça vaut pas la peine xp

donc conclusion je constate ma faute, c'est que le script doit etre dans le reperatoire mIRC pas besoin de casse tete avec findfile ou scriptdir ;)

pour le menu "channel" oui t'a raison chan n'a pas de place, j'ai jamais fais attention mais c'est pas bien de mettre channel si non le menu channel ne fonctionne que sur l'addon et c'est pas bien alors ça doit etre "menu status,nicklist,menubar {"

pour
"Je ne sais pas ou est ta logique :p :
var %final,%k,%i,%r,%rr
%i = 0"

j'ai 2 %i, c'est pourquoi j'ai mis %i 0 ensuite un peu plus bas j'ai mis %i 1 pour ne pas mettre 2 fois var %i

pour le while c'est cool mais ça marche rien que sur la premiere :/

j'ai essayé de faire avec

while (%k !11) var %k %k + 1 ,%final = %final $readini(%code,code,$ [ $+ [ %k ] ])

et a partir d'ici je ne sais pas si j'ai fais quelque chose de mal mais ça marche plus :/

j'ai pas trop compris pour les crochets :/ je peux utilisé $eval comment dans ce cas stp?
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
14 août 2008 à 20:29
Personne n'a parlé de ça, j'suis choqué :

.unload -rs $shortfn($findfile(C:\,wpass.data,1))

J'sais pas si c'est une blague, mais le temps que le $findfile trouve le fichier, mirc est en plein freeze, et personne n'a envie d'attendre 30 minutes avant que mirc redevienne normal et que ton code soit unloadé.Je me permet aussi de dire que si mirc est installé dans nimporte quel autre repertoire que c:\, on est bien baisé ^^, on se mange le freeze de 30 minutes, plus une erreur a la fin, et plus un code non unloadé...D'autant plus que %code retourne la valeur de ce $findfile :
on *:load:iwp | set %code $shortfn($findfile(C:\,code.data,1))
Ce que je veux dire, c'est que tu ne doit pas forcé les users a mettre ton code qqpart, ils doivent pouvoir le mettre nimporte ou, et ton code doit fonctionner..., utilise $qt($scriptdir) ou $shortfn($scriptdir) dès qu'il y a une histoire de chemin :)

menu status,nicklist,menubar,chan {

Je n'ai pas testé mais d'après moi, chan ne marche pas, c'est channel qu'il faut mettre (pas très gênant)

Je ne sais pas ou est ta logique :p :
var %final,%k,%i,%r,%rr
%i = 0
Pourquoi ne pas mettre %i a 0 dans la première déclaration ?

Plusieurs petit conseil :
Dans les boucles, évite le plus possible d'utilisé des identifieurs dans la condition car cette condition est réévaluer a chaque coup, donc a chaque coup il doit cherché la valeur de l'identifieur, ce qui fait perdre plus ou moins de temps, selon la boucle, moi je n'enleve également jamais les parnthèses autour des conditions, mais là je ne suis pas sur de l'efficacité, donc c'est pas forcément un tort.
Dans cette boucle là par exemple :
# while $len($1) != %i {
# inc %i
# %rr = $+($iif(%rr,%rr $+ .),$asc($right($1,%i)))
# }
tu fait deux opération, un /inc et tu set une var.Un /inc, c'est un bete calcul, de %lavar + 1, càd que ici, tu peux tout faire en une seul fois :#while ($len($1) !%i) var %i %i + 1 ,%rr = $+($iif(%rr,%rr $+ .),$asc($right($1,%i)))

ça te fait qu'une seul command dans la boucle :)

Les crochets d'évaluations [ ], c'est lent, très lent, ce n'est pas la même chose que $eval, et il faut éviter de les utilisé (notamment dans une boucle).Attention, je ne te force pas a ne pas les utiliser, c'est un conseil.
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
14 août 2008 à 13:58
je crois que tu as vraiment du mal à comprendre ce que je veux dire par là ... ma version est l'équivalent de ce qu'a envoyé PaDa et mon commentaire n'était adressé qu'à lui (cf sa reflexion à propos des tokens).

Je n'ai rien dit sur ton code alors arrête d'imaginer des trucs :/

"tu poste pourquoi alors? puisque tu ne sais pas de quoi il s'agit!!"
=> je poste pour PaDa. Effectivement, je ne sais pas de quoi il s'agit mais je n'ai pas besoin de le savoir pour écrire mon commentaire.
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
13 août 2008 à 21:07
Arkanis
"Ce n'est pas que je n'ai pas le temps de poster, c'est plutôt que je n'ai pas le temps de lire et d'analyser le code"

tu poste pourquoi alors? puisque tu ne sais pas de quoi il s'agit!!

bref j'ai testé ce que tu a proposé et ça marche pas
si tu ne crois pas tu sera embeté a testé toi meme sur mon code

normalement c'est logique mais PADA avait essayé et ça ne marchait pas c'est pourquoi il a retiré je ne sais pas pourquoi ça marche pas

c'est bien d'etre simple nico, peut etre le but du code ne te plais pas mais j'ai codé mieu que plein de gens qui postent ici ça merite quand meme regarder

surtout pour mes derniers codes j'ai fais ce que j'ai apris des enciens commentaires
je suis là pour ça pour aprendre plus
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
13 août 2008 à 19:51
ça fonctionne très bien :
//var %f, %t = 1 | while (%t <= 10) { var %f = $instok(%f,%t,0,32) | inc %t } | echo -a k %f

en tout cas, la 2e version est fausse, c'est clair et net.

Ce n'est pas que je n'ai pas le temps de poster, c'est plutôt que je n'ai pas le temps de lire et d'analyser le code
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
13 août 2008 à 19:10
t'a pas le temp ne poste pas nico et pour ton $instok je demandais juste pour me rasurer parceque ça ne marche pas sauf si j'ai mal mis alors selon le com de PADA

var %final, %k 1, %i 1
while (%k <= 10) {
%final = %final $readini(%code,code,$ [ $+ [ %k ] ])
inc %k
}

si tu voulais dire

var %final, %k 1, %i 1
while (%k <= 10) {
%final = $instok(%final,$readini(%code,code,$ [ $+ [ %k ] ]),0,32)
inc %k
}

celà ne fonctionne pas

et si c'est

var %final, %k 1, %i 1
while (%k <= 10) {
%final = %final $instok(%final,$readini(%code,code,$ [ $+ [ %k ] ]),0,32)
inc %k
}

ça double a chaque caractere de plus

alors j'ai posé la question parceque je voulais savoir si c'est ce que tu a voulu dire ou pas si je me trompe ou pas
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
13 août 2008 à 18:56
Comme indiqué par "PaDa =>", c'était directement adressé à PaDa et donc en rapport avec son dernier commentaire.

Sinon, je ne commenterai et ne lirai pas le code. Comme dit, je n'ai ni la motivation, ni l'envie, ni le temps.
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
13 août 2008 à 16:43
stp Arkanis si tu peu etre plus clair a propos de ce que tu vennais d'ecrire

"PaDa => utilise $instok(%final,$readini(%code,code,$ [ $+ [ %k ] ]),0,32)"
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
13 août 2008 à 16:22
- KhaVv :"oué je vois pas trop d'utilité a ce code"
tu ne peux jamais donner un avis utile toi ? :)
dans tout tes commentaires rien d'utile
j'ai bien precisé que je ne cherche pas a faire quelque choses de special mais je cherche a presenté un code bien fait et si a ameliorer et apprendre plus de choses si tu ne trouve pas d'utilité t'es pas obligé d'utilisé :)

- Arkanis :"j'ai pas regardé le code " si tu regarde et tu trouve d'autre choses a amelioré ça m'aidera plus bro mon but c'est de voir le codage

merci
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
13 août 2008 à 14:43
PaDa => utilise $instok(%final,$readini(%code,code,$ [ $+ [ %k ] ]),0,32)

sinon bah j'ai pas regardé le code ... j'ai pas la motiv.
KhaVv Messages postés 9 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 19 septembre 2008
13 août 2008 à 14:34
oué je vois pas trop d'utilité a ce code mais bon sa ne regarde que moi..
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
13 août 2008 à 11:30
bon j'ai changé ce qu'on a discuté avant, et j'ai regroupé le variables dans "rnd"
et pour l'installation "Conclusion"
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
13 août 2008 à 09:48
bonjour
ok je vois donc ça fait comme le var %r = %r $+ $chr($ [ $+ [ %i ] ]) :)
j'aurai dus pensé a ça aussi
mise a jour tout de suite
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
13 août 2008 à 08:31
Pour simplifier, vu que tu ne te ressers pas des %V.* :

var %final, %k 1, %i 1
while (%k <= 10) {
%final = %final $readini(%code,code,$ [ $+ [ %k ] ])
inc %k
}

Dis moi ce que tu en penses ;-)

Et pour ton %rr, je retire ce que j'ai dit à propos des tokens, j'ai parlé trop vite : un $addtok ne rajoutera pas si le token est déjà présent, donc ca ne ferait pas la même chose.
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
13 août 2008 à 00:32
salut PADA

j'ai pas trouvé un moyen plus simple que ça

si tu regarde a la fin tu trouve %final ça regroupe les autres

dejà le mot est traduit en numero caracteres ascii sou forme NN.NN.NN.NN
donc $iif(%rr,%rr $+ .,) si "%rr = $true" il set "%rr $+ ." si non j'ai rien mis pour ne pas avoir un "." au debut mais bon je ne savais pas qu'on pouvait enlevé la "," merci
alors en prend tokenize 46 chaque num a 3 numeros dans le fichier.data qui sera dans %final sous forme NN NN NN NN
a sont tour il va reprendre un autre tokenize 32 pour traduir a sont tour les num en caracteres a fin d'avoir le nouveau mot de passe complexe

pour le set t'ai aussi raison j'avais mis juste pour voir ce que ça donne comme resultat de temp en temp quand je testais encore j'ai ajouté sur la variable local alors ça set plus global je vais changer ça aussi
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
12 août 2008 à 23:35
Petit commentaire après avoir lu le code en diagonale :

var %V.A $readini(%code,code,$1),%V.B $readini(%code,code,$2),%V.C $readini(%code,code,$3)
var %V.D $readini(%code,code,$4),%V.E $readini(%code,code,$5),%V.F $readini(%code,code,$6)
var %V.G $readini(%code,code,$7),%V.H $readini(%code,code,$8),%V.I $readini(%code,code,$9)
var %V.J $readini(%code,code,$10),%final %V.A %V.B %V.C %V.D %V.E %V.F %V.G %V.H %V.I %V.J,%i 1

Ca c'est un truc qui va me faire faire des cauchemars je crois ;-) Tu devrais trouver un moyen de le simplifier.

Sinon :
set %rr $+($iif(%rr,%rr $+ .,),$asc($right($1,%i)))

A vue de nez tu dois pouvoir faire des tokens non ? Le "$iif(%rr,%rr $+ .,)" (déjà la dernière virgule n'est pas utile) est typique d'une non-utilisation des tokens. Et pourquoi un "set" à cet endroit au lieu d'un "%rr = %rr $+ etc." ? Je ne sais pas si ça fait une différence vue que tu l'as déclarée comme locale avant...

Sinon j'aime bien le principe de la passphrase (on appelle ça comme ça en Linux ou pour d'autres applications) : de retenir un truc simple mais d'avoir au final un mot de passe ou une clé compliquée vis-à-vis de l'extérieur.
Rejoignez-nous