Vous desirez tchater en top secret ? HyperCryptTchat est fait pour vous. Assurez vous que votre correspondant ait la meme clé et le meme mot de passe et connectez vous sur son ip. Voila, vous pouvez vous lacher.
J'aimerais que 2 d'entre vous l'essaye. Moi, je ne peux pas car mon ip n'est pas pinguable
ps : grand merci a Dobro et Mesa pour leur aide et merci a falsam d'avoir testé
Code : Tout sélectionner
Enumeration ;fenêtre
#Window
#ipgadget
#bouton_connect
#bouton_deconnecte
#text_mot_de_pass
#bouton_clef
#bouton_appliquer
#text_mdp
#text_cle
#text_tchat
#frame1
#frame2
#frame3
#frame4
#frame5
#menu_1 ; j'ai mis 1 car je ne sais pas a quoi tu veux le faire reagir
#file
EndEnumeration
If InitNetwork() = 0
MessageRequester("Error", "Can't initialize the network !", 0)
End
EndIf
OpenConsole()
EnableGraphicalConsole(1)
len=5000
*Buffer = AllocateMemory(len)
Dim cle.b(2600)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Port = 6842
If CreateNetworkServer(0, Port)
Else
MessageRequester("Error", "Can't create server !", 0)
End
EndIf
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ConsoleColor(15,0)
PrintN("HyperCryptTchat beta 5.3")
ConsoleColor(7,0)
PrintN("(c)2012 - SPH")
PrintN("")
ConsoleColor(8,0)
PrintN("::port "+Str(port)+"::")
PrintN("")
If OpenWindow(#Window, 0, 0, 340, 234, "HyperCryptTchat", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
; EditorGadget(#EditorGadget_0, 8, 8, 306, 133)
; For a = 0 To 5
; AddGadgetItem(#EditorGadget_0, a, "Ligne "+Str(a))
; Next
;AddKeyboardShortcut(#Fenetre, Raccourci, Event)
Frame3DGadget(#frame1, 13, 10, 314, 111, "Cryptographie")
ButtonGadget(#bouton_clef, 25, 30, 72, 20, "Clé")
StringGadget(#text_cle,105,30,210,20,"",#PB_String_BorderLess)
TextGadget (#text_mot_de_pass, 25,60, 250, 24, "Mot de passe :")
StringGadget(#text_mdp,105,60,210,20,"",#PB_String_BorderLess)
ButtonGadget(#bouton_appliquer, 105, 90, 130, 20, "Appliquer")
Frame3DGadget(#frame2, 13, 125, 314, 50, "Correspondant")
IPAddressGadget(#ipgadget, 25, 145, 120,20)
ButtonGadget(#bouton_connect , 160, 145, 72, 20, "Connect")
ButtonGadget(#bouton_deconnecte, 240, 145, 72, 20, "Disconnect")
DisableGadget(#bouton_deconnecte,1)
Frame3DGadget(#frame3, 13, 179, 314, 50, "Tchat")
StringGadget(#text_tchat,25,198,290,20,"",#PB_String_BorderLess)
SetActiveGadget(#text_tchat) ; a quoi ça sert ça ??
AddKeyboardShortcut(#Window, #PB_Shortcut_Return, #menu_1)
Repeat
Event = WaitWindowEvent() ;Or NetworkServerEvent()
SEvent = NetworkServerEvent()
;Beep_(1500,30)
If SEvent
ClientID = EventClient()
Select SEvent
Case #PB_NetworkEvent_Connect
ConsoleColor(15,0)
PrintN("Connected...")
Case 2
ReceiveNetworkData(ClientID, *Buffer, len)
message$=(PeekS(*Buffer))
Gosub recep ;++++++++++++++++++++++++++++++++++++++++
Case #PB_NetworkEvent_Disconnect
ConsoleColor(15,0)
PrintN("...Disconnected")
EndSelect
EndIf
Select Event
Case #PB_Event_Gadget ; ici on regarde ce qui concerne les Gadgets et seulement eux
Select EventGadget() ; on va creer un case par gadget !! (tout les gadgets auront un case , meme si tu ne t'en sert pas !
Case #ipgadget
;debug"clique sur ip gadget"
Case #bouton_connect
;debug"click sur connect"
;******************************************************************************
If GetGadgetText(#ipgadget)<>""
ConnectionID = OpenNetworkConnection(GetGadgetText(#ipgadget), Port)
If ConnectionID
connect=1
DisableGadget(#bouton_connect,1)
DisableGadget(#bouton_deconnecte,0)
Else
connect=0
DisableGadget(#bouton_connect,0)
DisableGadget(#bouton_deconnecte,1)
EndIf
EndIf
;******************************************************************************
Case #bouton_deconnecte
;debug"click sur deconnect"
If connect=1
CloseNetworkConnection(ConnectionID)
EndIf
connect=0
DisableGadget(#bouton_connect,0)
DisableGadget(#bouton_deconnecte,1)
Case #text_mot_de_pass
;debug"modification de mot de pass"
Case #text_mdp
;debug"on a clique ou modifie le text inconnu"
Case #bouton_clef
;debug"on a clicke sur le bouton clef"
Fichier$ = OpenFileRequester("Choisissez une clé de cryptage", "", "",0)
SetGadgetText(#text_cle,Fichier$)
Case #text_cle
;debug"on a clique ou modifie le text inconnu2"
Case #bouton_appliquer
;debug"click sur Appliquer"
If GetGadgetText(#text_mdp)<>"" And GetGadgetText(#text_cle)<>""
la=0
pointeur=0
pointeurla=1
pointeurla2=1
a$=Left(GetGadgetText(#text_mdp),500)
;Debug a$
For i=1 To Len(a$)
;Debug(Asc(Mid(GetGadgetText(#text_mdp),i,1)))
u=Asc(Mid(a$,i,1))
RandomSeed(u)
For ii=1 To 5
la+1
cle(la)=Random(120)+6
;Debug cle(la)
pointeur+cle(la)*cle(la)*14
Debug pointeur
;pointeur=0
Next
Next
RandomSeed(ElapsedMilliseconds())
ReadFile(#file, GetGadgetText(#text_cle))
; Debug pointeur
pointeur=pointeur%Lof(#file)
Debug pointeur
Debug Lof(#file)
Debug("===")
pointeur2=pointeur
FileSeek(#file,pointeur)
EndIf
Case #text_tchat
;debug"on a clique sur le text inconnu3"
EndSelect
Case #PB_Event_Menu ; ici on regarde les events du menu
Select EventMenu()
Case #menu_1
;debug"on a appuyé sur le touche RETURN"
Message$=GetGadgetText(#text_tchat)
ici:
messagecry$=""
If Message$<>"" And la<>0
If connect=1
Debug message$
For u=1 To Len(message$)
c.w=Asc(Mid(message$,u,1))
;Debug ("====")
;Debug c
;encore:
For i=1 To cle(pointeurla)
FileSeek(#file,pointeur)
b.w=ReadByte(#file)
If b=0
i-1
;Debug ("encore")
EndIf
;Debug b
c=c ! b
pointeur+1
If pointeur>=Lof(#file)
pointeur=0
EndIf
Next
;Debug c
pointeurla+1
If pointeurla>la
pointeurla=1
EndIf
;If c=0 Or c=9 Or c=10 Or c=13
; c=32
;EndIf
Repeat
d.w=Random(200)+55
;Beep_(150,10)
Until c<>d
c=c ! d
; Debug c
; Debug d
messagecry$+Chr(c)+Chr(d)
Next
;Debug Messagecry$
SendNetworkString(ConnectionID, Messagecry$)
;message$=Messagecry$
Repeat
a$=Left(Message$,80)
ConsoleColor(12,0)
PrintN(a$)
Message$=Mid(Message$,81,Len(Message$)-80)
Until Message$=""
EndIf
EndIf
SetGadgetText(#text_tchat,"")
SetActiveGadget(#text_tchat)
message$=messagecry$:Gosub recep
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf
End
recep:
Debug message$
messagecry$=""
For u=1 To Len(message$) Step 2
c.w=Asc(Mid(message$,u,1))
d.w=Asc(Mid(message$,u+1,1))
Debug("===")
Debug c
; End
;encore2:
; FileSeek(#file,pointeur2)
For i=1 To cle(pointeurla2)
FileSeek(#file,pointeur2)
b.w=ReadByte(#file)
If b=0
i-1
Debug ("encore")
EndIf
c=c ! b
pointeur2+1
If pointeur2>=Lof(#file)
pointeur2=0
;FileSeek(#file,pointeur2)
EndIf
Next
c=c ! d
;If c=0 Or c=9 Or c=10 Or c=13
; c=32
;EndIf
messagecry$+Chr(c)
pointeurla2+1
If pointeurla2>la
pointeurla2=1
EndIf
Next
;; debug Message$
;message$=Messagecry$
Repeat
a$=Left(Messagecry$,80)
ConsoleColor(10,0)
;CharToOem_(@Messagecry$, @Messagecry$)
PrintN(a$)
Messagecry$=Mid(Messagecry$,81,Len(Messagecry$)-80)
Until Messagecry$=""
Return