AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Login System

Ein Thema von dj2289 · begonnen am 19. Jan 2006 · letzter Beitrag vom 20. Jan 2006
Antwort Antwort
dj2289

Registriert seit: 18. Mai 2004
18 Beiträge
 
#1

Login System

  Alt 19. Jan 2006, 19:05
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 Loginass empfangen wird,
die Passwortfunktion aufgerufen wird, oder einfacher: Wie trenne ich den Befehl Login: vom Passwort!
Ich danke für eure Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#2

Re: Login System

  Alt 19. Jan 2006, 19:46
hallo,
könntest du mal genau schreiben, welche daten der sserver vom client erhält.
Christian
  Mit Zitat antworten Zitat
dj2289

Registriert seit: 18. Mai 2004
18 Beiträge
 
#3

Re: Login System

  Alt 19. Jan 2006, 19:55
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.
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#4

Re: Login System

  Alt 19. Jan 2006, 20:47
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:
Kennung:=IP,Name,Serverkennwort Dann beim Server:
on recieved text
Delphi-Quellcode:
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}
dann kannst du:
Delphi-Quellcode:
if ListBox1.Items.Strings[3]='festesServerpasswortthen
ServerSocket1.Socket.SendText('Login correct');
und diesen recieve text dann beim client wieder bearbeiten
Christian
  Mit Zitat antworten Zitat
dj2289

Registriert seit: 18. Mai 2004
18 Beiträge
 
#5

Re: Login System

  Alt 20. Jan 2006, 16:50
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
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz