Page 1 sur 1
[R] Stocker et rapeller le résultat d'une variable
Posté : mer. 31 juil. 2013 10:17
par hardfloor
Bonjour à tous,
Voilà j'aimerais savoir si il était possible de stocker le résultat d'une variable en mémoire et de le rapeller depuis un autre fichier!
Code : Tout sélectionner
$Test = TestRandom(3)
Func TestRandom($Long)
Local $lPos , $i, $p, $RndStr
Const $Str = "123456789"
For $i = 1 To $Long
$lPos = Int(Random(1, StringLen($Str)))
$p = StringMid($Str, $lPos + 1, 1)
$RndStr = $RndStr & $p
Next
Return $RndStr
EndFunc
Voilà donc comme vous pouvez le voir cette fonction me génère aléatoirement une chaine et donc j'aimerais la mettre en memoire et la rapeller depuis un autre fichier pour pouvoir la réutiliser.
Si un pro peut m'aider je lui en serais reconnaissant. J'ai vu qu'il était possible d'utiliser memory.au3 mais je ne sias pas comment m'y prendre ou si vous avez plus simple pour rapeller le resultat $Test je suis toute ouie .
Merci à ceux qui prendront le temps de me répondre
Re: [..]Stocker et rapeller le résultat d'une variable
Posté : mer. 31 juil. 2013 11:53
par jchd
Stocker dans un fichier, dans le registre, dans une variable d'environnement.
Re: [..]Stocker et rapeller le résultat d'une variable
Posté : mer. 31 juil. 2013 12:29
par DimVar
jchd a écrit :Stocker dans un fichier, dans le registre, dans une variable d'environnement.
Bonjour,
Fichier = Fileopen / Filewrite / Fileclose
Registre = Regwrite / Regread
Cdlt.
Re: [..]Stocker et rapeller le résultat d'une variable
Posté : mer. 31 juil. 2013 13:09
par mikell
Si le mode de ré-utilisation l'accepte et si l'archivage de la chaine n'est pas nécessaire, un simple passage par le presse-papiers peut suffire avec ClipPut() et ClipGet()
Re: [..]Stocker et rapeller le résultat d'une variable
Posté : mer. 31 juil. 2013 13:55
par hardfloor
Okkkk........
bon je crois que la methode du presse papier peut me convenir
donc dans mon fichier de fonction je déclare la variable comme ceci
Code : Tout sélectionner
Global $Test = TestRandom(3)
ClipPut($Test)
Func TestRandom($Long)
Local $lPos , $i, $p, $RndStr
Const $Str = "123456789"
For $i = 1 To $Long
$lPos = Int(Random(1, StringLen($Str)))
$p = StringMid($Str, $lPos + 1, 1)
$RndStr = $RndStr & $p
Next
Return $RndStr
EndFunc
Et après je peux donc dispatcher cette chaine dans le ou les fichiers de mon choix et en la rapellant avec ClipGet
Code : Tout sélectionner
$Test = ClipGet()
MsgBox(0, "Je teste le copier/coller de la chaine:", $Test)
Est ce que j'ai bon ou pas??

Re: [..]Stocker et rapeller le résultat d'une variable
Posté : mer. 31 juil. 2013 14:33
par mikell
Globalement oui
Après bien sûr ça dépend de ce que tu appelles "dispatcher cette chaine dans le ou les fichiers de mon choix" et du "récepteur"
Avec un autre script autoit aucun problème (ça correspond à ce que tu as écrit), pour une application externe faut voir si elle peut le gérer
Re: [..]Stocker et rapeller le résultat d'une variable
Posté : mer. 31 juil. 2013 14:57
par Manox
Question bête, mais pourquoi tu inclus pas ton fichier via un #include dans ton fichier principal pour ensuite appeler directement ta fonction ?
Re: [..]Stocker et rapeller le résultat d'une variable
Posté : mer. 31 juil. 2013 16:16
par hardfloor
Hello Manox,
Alors je t'explique mon petit projet.
Cette fonction me genere une code aléatoire.
Le but la manoeuvre c'est d'utiliser la chaine générée 2 fois.
Il faut que cette chaine soit strictement identique, sinon le programme quitte.
donc étant donnée qu' a chaque lancement du programme il genere une chaine, je dois pourvoir l'utiliser 2 fois et l'apeler sur 2 pages de script diffentes.
J'ai bien essayer Include "Mapage" dans les 2 autres pages , mais le programme plante cxar j'ai 2 chaines differrentes. Hé oui le code est activé 2 fois et je n'ai pas trouvé la solution.
Là je viens d'essayer avec les registres!
J'arrive bien a ecrire dans un registre donné et à le lire sur l'autre page, mais ca plante encore, donc je le lis bien mais je ne sais pas l'importer dans mon code je pense! Lire ne doit pas être suffisant............

Re: [..]Stocker et rapeller le résultat d'une variable
Posté : mer. 31 juil. 2013 17:26
par Manox
Ok, c'est un peu plus clair !
Comment sont lancés les deux autres scripts ?
Si ils sont lancés depuis la même page (Appelons-la "principale") il suffit de faire l'include sur la page principale lancé la fonction depuis celle-ci, récupérer la valeur du retour dans une variable globale, comme ceci les deux autres scripts auront accès à cette variable.
Re: [..]Stocker et rapeller le résultat d'une variable
Posté : mer. 31 juil. 2013 18:41
par hardfloor
re,
Alors voici mon schéma actuel:
Page1 => Juste ma fonction de random
Page2 => 1er script qui a besoin de la valeur du random
Page3 => 2ièeme script qui a besoin de al valeur du random
Et donc mon premier essai avait été de mettre un Include dans la page 2 et 3.
Je pense que c'est au niveau des variables que j'ai du me planter car en faisant un petit regwrite dans la page 2 et 3 'pour controler mes chaines) evdemment elles sont différentes
Alors si tu as un exemple à me montrer je suis preneur
Voilà donc le code de la page 1
Code : Tout sélectionner
Global $Test = TestRandom(3)
Func TestRandom($Long)
Local $lPos , $i, $p, $RndStr
Const $Str = "123456789"
For $i = 1 To $Long
$lPos = Int(Random(1, StringLen($Str)))
$p = StringMid($Str, $lPos + 1, 1)
$RndStr = $RndStr & $p
Next
Return $RndStr
EndFunc
Alors en fait la page 1 est mon programme principal et la pge 2 est pour compiler un Stub donc 2 scripts différents, mais ma page 1 compilée donnera un exe qui aura besoin du stub.exe pour fonctionner.
Le but de cette opération est queje veux réaliser un petit crypter maison et que j'avais envie de générer une chaine random pour l'integrer à ma fonction de cryptage^^
La fonction de cryptage doit être identique dans les 2 exe sinon le fichier crypté plante.Voilà pourquoi j'ai mis ma fonction random à part pour que je puisse l' Include.
Si je n'avais pas voulu me prendre la tête j'aurais balancé une chaine "fixe" dans les 2 pages et basta, mais j'aime bien les défis! (Et vu que je suis pas un pro, c'est un défi pour moi

)
Je sais je suis tordu.........

Mais j'aime bien les choses complexes^^
Re: [..]Stocker et rapeller le résultat d'une variable
Posté : mer. 31 juil. 2013 19:01
par mikell
hardfloor a écrit :La fonction de cryptage doit être identique dans les 2 exe
ça va pas le faire du tout
Si tu mets la même fonction dans les 2 exe mais qu'elle contient un Random, tu auras 2 résultats différents
Re: [..]Stocker et rapeller le résultat d'une variable
Posté : mer. 31 juil. 2013 19:17
par hardfloor
Hé oui mikel,
C'est la raison pour laquelle j'ai essayé avec les registres et le presse papiers mais sans succés!
Ce la doit pourtant pouvoir se faire
si tu veux la variable $Test se retrouvera dans la fonction de cryptage qui sera identique dans les 2 exe, d'où la nécessité d'importer la valeur de $test dans les 2 fichiers.
C'est pour ca que j'avais abandonner Include. J'avais mis ma fonction random dans le premier programme avec une ecriture registre et je pensais que je pouvais lire et importer via stub........ là j'ai foiré aussi! A mon avi je nesais pas importer une clé via le registre! Je sais la lire mais c'est tout!
Si tu as une idée pour me débloquer, c'est cool

Re: [..]Stocker et rapeller le résultat d'une variable
Posté : mer. 31 juil. 2013 19:34
par mikell
Bah c'est pas difficile dans la mesure où tu n'utilises ton Random qu'une seule fois
script 1 : Random => tu crées la variable => tu la stockes
script 2 : lecture de la variable stockée, et si ce que rentre l'utilisateur est ègal à ça alors ok
Tu peux introduire un 2ème cryptage supplémentaire si tu veux (le même dans les 2 scripts) mais SANS Random

Re: [..]Stocker et rapeller le résultat d'une variable
Posté : mer. 31 juil. 2013 20:07
par hardfloor
Oui mais justement tu la stocke de quelle manière..............
Avec regWrite??
Moi j'avais fais comme ca.....
Code : Tout sélectionner
Global $Test = TestRandom(3)
$Crypt = _MD5("une chainefixe", $Test)
Func TestRandom($Long)
Local $lPos , $i, $p, $RndStr
Const $Str = "123456789"
For $i = 1 To $Long
$lPos = Int(Random(1, StringLen($Str)))
$p = StringMid($Str, $lPos + 1, 1)
$RndStr = $RndStr & $p
Next
Return $RndStr
EndFunc
Donc tel qu'elle est, est ce que la valeur $Test est correctement déclarée et stockée?? Je ne suis pas sûr..........
Et dans mon script n°2:
Je retrouve aussi
Et comment je déclare $Test dans le script n°2 et surtout comment importer la valeur $Test
ps: Le md5 c'est juste pour exemple hein.......

Re: [..]Stocker et rapeller le résultat d'une variable
Posté : mer. 31 juil. 2013 23:27
par mikell
Attention, ce qui suit n'est PAS du vrai code, c'est juste pour montrer un mécanisme possible
Code : Tout sélectionner
;; script 1
$var = "chaine"
$var_crypt = _Crypt($var)
RegWrite(.....clé, $var_crypt ) ; archivage de la chaine cryptée
;; script 2
$varcrypt2 = RegRead(.....clé ) ; lecture de la chaine cryptée
$entrée_user = ... ; entré par l'utilisateur
$entrée_user_crypt = _Crypt($entrée_user) ; cryptage entrée user (même cryptage que dans le script 1 )
If $entrée_user_crypt = $varcrypt2 Then OK ; test
Mais AMHA mettre du Random dans un mot de passe c'est plus de la sécurisation c'est du loto ^^
Re: [..] Stocker et rapeller le résultat d'une variable
Posté : jeu. 01 août 2013 01:09
par hardfloor
Héhé, je sais que c'est tordu........... Mais j'aime bien explorer plein de possibilités^^
Bon en tout cas j'essaie ton mecanisme demain. Et merci d'avoir pris le temps de m'expliquer.
ps: En regardant ton code, je me suis dit........"Mais bon dieuc'est bien sur....

" Il ne reste plus qu'à placer un regdelete à la fin de l'execution , histoire de cleaner tout ca.........)
Merci à toi, bonne soirée
Re: [..] Stocker et rapeller le résultat d'une variable
Posté : jeu. 01 août 2013 02:37
par mikell
Hé je voulais pas dire tordu, je voulais dire inutilisable ^^
Imagine que ta boite mail te demande un mot de passe aléatoire chaque fois que tu veux la consulter... je plains celui qui t'a écrit et qui espère une réponse

Re: [..] Stocker et rapeller le résultat d'une variable
Posté : jeu. 01 août 2013 09:41
par hardfloor
Hello Mikell, Bon ca marche nikel je te remercie, En fait, lorsque moi j'avais essayé avec regwrite, je me suis planté dans mes declaration de variables dans le script 2. C'est pour ca que ca foirait...
Alors en ce qui concerne l'utilisation de ce random, ce n'est pas pour un quelconque mot de passe......... Je sais très bien que personne pourrait se connecter avec un random

! Non , en fait, ce random va rentrer dans une chaine aes.....
Et cette chaine aes va crypter un fichier en particulier........... donc je veux réaliser un genre de cryptage unique, polymorphique si tu veux, à chaque lancement du soft!
Mouahahahha le bill gate du cryptage c'est mooooooooooi^^
Ptdrrrr ah non c 'est vrai c'est pas le bill gate mais le noob.....
Ban......allez je retourne à mes cours sur Autoit.......pour Bill gate on verra après hein...

Re: [..] Stocker et rapeller le résultat d'une variable
Posté : jeu. 01 août 2013 11:14
par mikell
OK ok
Si c'est résolu un [R] dans le titre du 1er sujet please