Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Saisie d'un code secret | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Saisie d'un code secret Mer 20 Juil 2016 - 1:25 | |
| Après une longue absence, je reviens sur le forum. Je prendrai le temps de lire, lentement, tout ce qui a été posté de puis mon absence. En attendant, voici un petit truc pour saisir un code secret par des boutons apparaissant à des endroits aléatoires (façon code de sécurité pour un compte bancaire en ligne). Dans cet exemple, le code attendu est 14072016: - Code:
-
' test_code_secret.bas
label code dim ok%, i%
button 1 : top 1,10 : left 1,10 : caption 1,"Code" : on_click 1,code end
code: ok% = 0 CodeConfidentiel(25,100,200) return
sub CodeConfidentiel(no%,x%,y%) dim_local i%, c$, p%(24), id%, l%, c%, ed%, b%, premier% if label("CodeConfidentielBouton")=0 label CodeConfidentielBouton, CodeConfidentielOk premier% = 1 end_if ok% = 0 if premier%=1 form no% : border_hide no% : color no%,200,200,255 top no%,y% : left no%,x% : height no%,200 : width no%,180 else text no%+11,"" show no% end_if for i%=0 to 9 id% = int(rnd(24)+0.5) while p%(id%)>0 id% = int(rnd(24)+0.5) end_while p%(id%) = i% + 1 next i% for l%=0 to 4 for c%=0 to 4 id% = l%*5 + c% if p%(id%)>0 b% = no% + p%(id%) button b% : width b%,20 : caption b%,str$(p%(id%)-1) parent b%,no% : top b%,40+l%*30 : left b%,10+c%*30 on_click b%,CodeConfidentielBouton end_if next c% next l% if premier%=1 ed% = no%+11 : edit ed% : parent ed%,no% : top ed%,10 : left ed%,10 width ed%,100 : inactive ed% : font_bold ed% : secret_on ed% button no%+12 : parent no%+12,no% : top no%+12,10 : left no%+12,120 : width no%+12,30 caption no%+12,"OK" : on_click no%+12,CodeConfidentielOk end_if inactive 0 end_sub
CodeConfidentielBouton: ' message str$(number_click - val(caption$(number_click))+10) text number_click - val(caption$(number_click))+10, text$(number_click - val(caption$(number_click))+10) + caption$(number_click) return CodeConfidentielOk: if text$(number_click-1)="14072016" message "Code correct" ok% = 1 else message "Code invalide" end_if hide number_click-12 for i%=number_click-11 to number_click-2 delete i% next i% active 0 return
| |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Saisie d'un code secret Mer 20 Juil 2016 - 7:33 | |
| Bonjour Klaus ! Content de te revoir parmi nous. Bonne lecture ! Le Forum étant très calme c'est derniers jours, cela te donnera le temps pour lire les anciens messages. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 20 Juil 2016 - 8:32 | |
| Salut Klaus ! Comme Minibug, je suis très heureux de te revoir parmi nous. Et je confirme, avec le calme estival tu vas avoir le temps de lire tous les posts. J' ai essayé ton code, il fonctionne bien chez moi et c' est une bonne idée. Il servira sûrement. | |
| | | Invité Invité
| Sujet: Re: Saisie d'un code secret Mer 20 Juil 2016 - 13:19 | |
| Bonjour Klaus. Content de te revoir. J'ai testé avec Linux, car pour l'instant avec W7, j'ai énormément de mal à fonctionner avex W7, depuis que j'ai changé de fournisseur. Ca fonctionne bien.
Il y a peu de temps, pour changer d’atmosphère, j'ai fait un essai avec ce code suivant, qui n'avait d'intérêt que de teste, sans plus.. Avec les boutons, un hacker peut savoir ce que tu tapes. Mon programme n'est qu'une divertion, sans plus.
(Je poste maintenant, car on m'appelle d'urgence, je poserais plus tard le code.) |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Saisie d'un code secret Mer 20 Juil 2016 - 13:35 | |
| - Citation :
- Avec les boutons, un hacker peut savoir ce que tu tapes.
Exact. C'était pour la facilité de programmation. En réalité, il faudrait mettre des petits picture contenant le chiffre. Je vais proposer une version améliorée prochainement. Merci pour ton commentaire ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Saisie d'un code secret Mer 20 Juil 2016 - 13:54 | |
| Voici la même chose, mais les boutons sont remplacés par des picture: - Code:
-
' test_code_secret.bas
label code dim ok%, i%
button 1 : top 1,10 : left 1,10 : caption 1,"Code" : on_click 1,code end
code: ok% = 0 CodeConfidentiel(25,100,200) return
sub CodeConfidentiel(no%,x%,y%) dim_local i%, c$, p%(24), id%, l%, c%, ed%, b%, premier% if label("CodeConfidentielBouton")=0 label CodeConfidentielBouton, CodeConfidentielOk premier% = 1 end_if ok% = 0 if premier%=1 form no% : border_hide no% : color no%,200,200,255 top no%,y% : left no%,x% : height no%,200 : width no%,180 else text no%+21,"" show no% end_if for i%=0 to 9 id% = int(rnd(24)+0.5) while p%(id%)>0 id% = int(rnd(24)+0.5) end_while p%(id%) = i% + 1 next i% for l%=0 to 4 for c%=0 to 4 id% = l%*5 + c% if p%(id%)>0 b% = no% + p%(id%) button b% : width b%,20 : caption b%,str$(p%(id%)-1) : hide b% parent b%,no% : top b%,40+l%*30 : left b%,10+c%*30 ' on_click b%,CodeConfidentielBouton picture b%+10 : width b%+10,20 : height b%+10,height(b%) : parent b%+10,no% top b%+10,40+l%*30 : left b%+10,10+c%*30 color b%+10,255,200,200 : font_bold b%+10 print_target_is b%+10 : print_locate 5,5 : print str$(p%(id%)-1) on_click b%+10,CodeConfidentielBouton end_if next c% next l% if premier%=1 ed% = no%+21 : edit ed% : parent ed%,no% : top ed%,10 : left ed%,10 width ed%,100 : inactive ed% : font_bold ed% : secret_on ed% button no%+22 : parent no%+22,no% : top no%+22,10 : left no%+22,120 : width no%+22,30 caption no%+22,"OK" : on_click no%+22,CodeConfidentielOk end_if print_target_is 0 inactive 0 end_sub
CodeConfidentielBouton: ' message str$(number_click - val(caption$(number_click))+10) text number_click - val(caption$(number_click-10))+10, text$(number_click - val(caption$(number_click-10))+10) + caption$(number_click-10) return CodeConfidentielOk: if text$(number_click-1)="14072016" message "Code correct" ok% = 1 else message "Code invalide" end_if hide number_click-22 for i%=number_click-21 to number_click-2 delete i% next i% active 0 return
| |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Saisie d'un code secret Mer 20 Juil 2016 - 13:56 | |
| Je suis content de te relire, Klaus. | |
| | | Invité Invité
| Sujet: Re: Saisie d'un code secret Mer 20 Juil 2016 - 14:02 | |
| Voila, je suis de retour: - Code:
-
' teste entre clavier et timer dim a$,t$,a% , k% ,x% , t% , y% , g$ , l% , c% , d% , i%,j% , colr% , scan% height 0,800 :message "sortie par PAUSE" edit 1:width 1,500:height 1,30:font_size 1,10:font_bold 1:font_name 1,"Consolas" picture 2:top 2,50:width 2,500:height 2,600 : print_target_is 2 : 2d_target_is 2 font_size 2,12:font_bold 2:font_name 2,"Consolas" 2d_rectangle 450,120,605,150 print_locate 455,125 : print "DEL" :font_size 2,30
l% = 1 : g$ = "abcdefghijklmnopqrstuvwxyz n&éèêàùç0123456789'#{}][|^¨µ*¤$&?.:!§(@ABCDEFGHIJKLMNOPKRSTUVWXYZ+-/\"+CHR$(13) j% = 1 for a% = 1 to len(g$) x% = x% +30 : i% = i%+1:if x% > 400 then x% = 0 : y% = y% +60 print_locate x%,y% : print mid$(g$,l%,1) : l% = l%+1
next a% 2d_line 430,0,430,600 : colr% = 1 repeat x% = mouse_x_position(2) y% = mouse_y_position(2) c% = (x%+17) /30 -1 d% = (y%+16) /55 -1 ' caption 0,str$(x%)+" c%="+ str$(c%) + " d%=" + str$(d%) pause 200 l% = c% + d% *14
' colr% = rnd(3):' print_locate 470,20 colr% = colr% + 1 : if colr% = 4 then colr% = 0 if colr% = 0 then 2d_fill_color 255,0,0 if colr% = 1 then 2d_fill_color 0,255,0 if colr% = 2 then 2d_fill_color 0,0,255 if colr% = 3 then 2d_fill_color 0,0,0 2d_circle 470,50,20 if mouse_x_position(2) < 420 if colr% = 0 pause 300 x% = mouse_x_position(2) y% = mouse_y_position(2) c% = (x%+17) /30 -1 d% = (y%+16) /55 -1
if l% = c% + d% *14 if l% > 0 then text 1,text$(1)+ mid$(g$,l%,1) ' là il faudrait mettre un autre jeux de couleur, pour ne pas voir l'arrêt. colr% = 4 repeat c% = (mouse_x_position(2)+17) /30 -1 d% = (mouse_y_position(2)+16) /55 -1 pause 200 if colr% = 4 then 2d_fill_color 192,0,0 if colr% = 5 then 2d_fill_color 192,231,0 if colr% = 6 then 2d_fill_color 134,120,255 if colr% = 7 then 2d_fill_color 170,30,121 2d_circle 470,50,20 colr% = colr% + 1 : if colr% = 8 then colr% = 4
until (c% + d% *14) <> l% or scancode = 4 colr% = 0 end_if end_if
else if mouse_x_position(2) > 450 and mouse_x_position(2) < 605 if mouse_y_position(2) > 120 and mouse_y_position(2) < 150 :' del t$ = text$(1) if len(t$) > 1 t$ = left$(t$,len(t$)-1) text 1,t$ else if t$ <> "" then t$ = left$(t$,1) : text 1,t$ end_if repeat pause 200 until mouse_x_position(2) < 450 or mouse_x_position(2) > 605 or mouse_y_position(2) < 120 and mouse_y_position(2) > 150 end_if end_if end_if caption 0,str$(scancode)+" scan%="+str$(scan%) if scancode = 4 :' molette clipboard_string_copy text$(1) repeat pause 100 until scancode = 1 : repeat : until scancode = 0 pause 1000 beep ' scan% = 0 end_if if scancode = 2 then clipboard_string_copy "" until scancode = 19 terminate
La saisie n'est pas rapide, mais il n'y a aucun clic Ce n'est qu'un teste |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Saisie d'un code secret Mer 20 Juil 2016 - 14:28 | |
| Approche intéressante ! Je n'ai pas de touche Pause, et j'ai essayé scancode=27, sans succès. Il y a également une difficulté de saisir deux fois de suite le même caractère. Mais ce sont des détails facilement solubles en creusant un peu. Bravo pour cet essai ! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Saisie d'un code secret Mer 20 Juil 2016 - 14:49 | |
| - Klaus a écrit:
- Je n'ai pas de touche Pause,..
Scancode = 19 représente la touche Pause/Break qui se trouve à l’extrême droite de la 1ère ligne de touches (après F1 .. F12) Mais elle reste inopérante pour sortir du programme. EDIT Bon, j’ai enfin réussi à sortir par la touche PauseMettre le curseur de la souris en dessous de DEL et appuyer pluseurs fois sur la touche Pause/Break | |
| | | Invité Invité
| Sujet: Re: Saisie d'un code secret Mer 20 Juil 2016 - 15:24 | |
| Réponse rapide, j'ai mon béton qui m'attend
Pour sélectionner un caractère, il faut rester dessus, et volontairement il faut déplacer le curseur, et revenir sur le caractère Au départ il n'y avait pas de DE, et cela évitait les problèmes Lorsqu'une touche est sélectionnée, les couleurs ne sont pas les mêmes.
Pour ce qui est de la touche pause. Certains claviers la touche pause est également SHIFT de droite.
Pour sortir, il faut être en dé sélection de touche, c'est à dire qu'il faut avoir les couleurs de départ: rouge vert bleu, le plus simple étant en dehors des caractères.
Je suis sur un pseudo-objet, du type GRID-memo. Chaque cellule est le contenu , et la visibilité d'un memo, mais en réalité ce n'est qu'une image. Presque toute la gestion est faite. C'est un ensemble complet avec une seule sub qu'on insère avant END. Il n'y a rien à codé, tout est prévu, et je ne sais pas si celà vous intéressera. J'avais besoin de cet outils pour avoir dans chaque cellule plusieurs paramètres pour un autre programme. |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Saisie d'un code secret Mer 20 Juil 2016 - 17:42 | |
| Bonjour cosmos, j'ai testé mais la saisie reste fastidieuse et pas forcément très simple à utilisé. Cela dit le principe est intéressant est mérite d'être amélioré. | |
| | | Invité Invité
| Sujet: Re: Saisie d'un code secret Mer 20 Juil 2016 - 19:44 | |
| Merci Minibug. Cela dit, ce code n'est qu'un essai pour me changer les idées. Évidement tel quel c'est pas pratique. J'ai profité de ce post pour montrer une façon de procéder, ou de rechercher une idée. Autrement je n'aurai rien publié.
J'ai lu ces dernier temps un article disant que le F.B.I mettant en garde sur le fait que certain chargeur d’Androïde je crois, avait une carte pour pouvoir lire les touches du clavier, et récupérer des informations. Je ne me souviens plus, mais c'est peut-être là que j'ai voulu tester cette idée. |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Saisie d'un code secret Jeu 21 Juil 2016 - 16:48 | |
| Pardon Klaus si je pollue un peu (au fait, content de te revoir, on commençait à s'inquiéter...) Une sub de saisie simplifiée de mot de passe, vite fait, je ne sais pas trop ce que ça vaut point de vue sécurité (il faut adapter la chaîne de caractères à passer en fonction des mots de passe désirés, ici j'ai mis les dix chiffres et les lettres de A à F: clavier de 4x4), le code est rendu dans le presse-papier. C'est un gadget un peu simpliste, mais bon... - Code:
-
Saisie_MP(20,20,4,4,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ") PRINT CLIPBOARD_STRING_PASTE$ END ' ============================================================================== SUB Saisie_MP(x%,y%,nc%,nr%,ch$) ' Saisie d'un code à la souris dans un clavier alphabétique en x%, y%, ' de nr% rangées x nc% colonnes IF LABEL("Clkb") = 0 THEN LABEL Clkb IF LABEL("Valid") = 0 THEN LABEL Valid DIM_LOCAL fm%,a$,b$,bt%,wb%,hb%,ed%,xd%,yd%,i%,j%,k%,mp$,wi%,hi%,ff% bt% = 950: wb% = 25: hb% = 25 xd% = 3: yd% = 5 fm% = 950: WHILE OBJECT_EXISTS(fm%)=1: fm%=fm%+1: END_WHILE bt% = fm%+1 FORM fm%: BORDER_SMALL fm%: PICTURE bt%: PARENT bt%,fm%: FULL_SPACE bt% wi% = WIDTH(fm%)-WIDTH(bt%): ' total bordures latérales hi% = HEIGHT(fm%)-HEIGHT(bt%): ' total bordure haut + bordure bas DELETE bt% i% = wb%*nc%+2*xd%+wi%: j% = hb%*(nr%+2)+2*yd%+hi% WIDTH fm%,i%: HEIGHT fm%,j%: CAPTION fm%," SAISIE CODE" FONT_NAME fm%,"Consolas": FONT_SIZE fm%,12: FONT_BOLD fm%: COLOR fm%,180,255,255 a$ = LEFT$(ch$,nc%*nr%) FOR j% = 0 TO nr%-1 y% = yd%+j%*wb% FOR i% = 0 TO nc%-1 x% = xd%+i%*wb%: bt% = bt%+1 BUTTON bt%: PARENT bt%,fm%: WIDTH bt%,wb%: HEIGHT bt%,hb% TOP bt%,y%: LEFT bt%,x%: ON_CLICK bt%,Clkb IF LEN(a$) = 1 b$ = a$ ELSE k% = 1+RND(LEN(a$)-1): b$ = MID$(a$,k%,1) a$ = LEFT$(a$,k%-1)+RIGHT_POS$(a$,k%+1) END_IF CAPTION bt%,b$ NEXT i% NEXT j% bt%=bt%+1: BUTTON bt%: PARENT bt%,fm%: TOP bt%,yd%+nr%*hb%: LEFT bt%,xd% WIDTH bt%,nc%*wb%: CAPTION bt%,"VALIDER": ON_CLICK bt%,Valid ed%=bt%+1: EDIT ed%: PARENT ed%,fm%: TOP ed%,TOP(bt%)+25: LEFT ed%,LEFT(bt%) WIDTH ed%,WIDTH(bt%) mp$ = "": ff% = 0 WHILE ff% = 0: PAUSE 500: END_WHILE: DELETE fm%: EXIT_SUB ' ----- Clkb: i% = NUMBER_CLICK: mp$ = mp$+CAPTION$(i%): TEXT ed%,TEXT$(ed%)+"X" RETURN ' ----- Valid: ' TEXT ed%,mp$: CLIPBOARD_STRING_COPY mp$: ff% = 1 RETURN END_SUB ' ============================================================================== | |
| | | Contenu sponsorisé
| Sujet: Re: Saisie d'un code secret | |
| |
| | | | Saisie d'un code secret | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |