![]() |
Login System
Hallo zusammen,
habe folgendes Problem, ich habe mir ein kleines Chatprogramm geschrieben, welches zuerst verschlüsselte Login daten (Schlüssel wird aus Name,IP,ServerPass,Kennwort errechnet) an den Server schickt und dieser Prüft die Daten und gibt entsprechend den Client frei. Da Ich nun TCP/IP verwende, und ich nur einen Port nutzen will, ist es notwendig die funktionen aufzuteilem, wie schaffe ich es also, dass dass Programm erkennt, dass wenn Login:Pass empfangen wird, die Passwortfunktion aufgerufen wird, oder einfacher: Wie trenne ich den Befehl Login: vom Passwort! Ich danke für eure Antworten! |
Re: Login System
hallo,
könntest du mal genau schreiben, welche daten der sserver vom client erhält. |
Re: Login System
Der Server bekommt einen String
Delphi-Quellcode:
unit login;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp, IdBaseComponent, IdComponent, IdIPWatch; type TRC4Context = record D: array[Byte] of Byte; I,J: Byte; end; TForm1 = class(TForm) Label1: TLabel; ServerIP: TEdit; Label2: TLabel; Button1: TButton; Button2: TButton; servmessage: TMemo; Label4: TLabel; ClientSocket1: TClientSocket; ListBox1: TListBox; Label5: TLabel; kennung: TEdit; Label3: TLabel; pass: TEdit; servpass: TEdit; Label6: TLabel; IdIPWatch1: TIdIPWatch; procedure Button2Click(Sender: TObject); procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); procedure Delay(time: word); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public cryptlicense:Integer; end; var Form1: TForm1; implementation {$R *.dfm} function myCoder(s: string; password: Integer; decode: Boolean):string; var i, c, x: Integer; begin if decode then x := -1 else x := 1; RandSeed := password; Result := ''; for i := 1 to length(s) do begin c := ord(s[i]); if c in [32..122] then begin c := c+(x*Random(90)); if (c<32) or (c>122) then c := c-(x*90); end; Result := Result + chr(c); end; end; procedure TForm1.Button1Click(Sender: TObject); var license:String; compare:String; request : string; begin compare:=Kennung.Text+Pass.Text; license := myCoder(compare, StrToInt(servpass.Text), False); ClientSocket1.Host:=ServerIp.Text; ClientSocket1.Active:=True; request:=license; delay(500); ClientSocket1.Socket.SendText(request+':'+IdIPWatch1.LocalIP); Button1.Enabled :=false; Button2.Enabled :=true; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin delay(500); ClientSocket1.Close; end; procedure TForm1.FormCreate(Sender: TObject); begin ServMessage.Lines.add('Projekt Version 0.1 BETA'); ServMessage.Lines.add('------------------------'); ServMessage.Lines.add('Login Consol Ready '); ServMessage.Lines.add('Locale IP:'+IdIPWatch1.LocalIP); ServMessage.Lines.add('------------------------'); end; procedure TForm1.Button2Click(Sender: TObject); begin ClientSocket1.Socket.SendText(Kennung.Text+' abgemeldet'); ClientSocket1.Close; ServMessage.Lines.add('Abmeldung vom Server'); Button1.enabled:=true; Button2.enabled:=false; end; procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); begin ServMessage.Lines.add('Client meldet: Verbunden (001) :: '+TimeToStr(now)); end; procedure TForm1.Delay(time: word); var Start : Integer; begin Start:=GetTickCount; while (GetTickCount)-(Start) <= time do Application.ProcessMessages; end; end. |
Re: Login System
also,
so wie ich das sehe uss man kein Passwort oder ähnliches eingeben bei dir, oder? 1.Wenn das so ist, warum brauchst du ein login? 2.Warum soll die verschlüsselt sein? 3.Ich habe das bei meinem chat so gelöst: vom Client an Server:
Delphi-Quellcode:
Dann beim Server:
Kennung:=IP,Name,Serverkennwort
on recieved text
Delphi-Quellcode:
dann kannst du:
ListBox1.Commatext:=recievedtext;
{dann steht in der ersten zeile der ListBox die IP und in der zweiten der Name und in der dritten das Serverkennwort}
Delphi-Quellcode:
und diesen recieve text dann beim client wieder bearbeiten
if ListBox1.Items.Strings[3]='festesServerpasswort' then
ServerSocket1.Socket.SendText('Login correct'); |
Re: Login System
Ich habe doch ein Passwort, dieses wird in dem Login Script eingeben, das Script nimmt dann Kennwort,ServerPass,Kennung
zusammen und generiert einen Schlüssel |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz