Autor Beitrag
Comp-Freak
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 89



BeitragVerfasst: Sa 14.04.07 08:40 
ich habe den source code von einem verschluesselungs progrm mahl angekuckt aber ich werde nicht ganz scglaud drauss. Ich probiere gerade diese methode aus:
ausblenden Delphi-Quelltext
1:
readbuff := char(pchar(buff)+ $20)					

aber ich weiss nicht genau wie ich sie benuezten soll.
So klappt es nicht:
ausblenden Delphi-Quelltext
1:
edit1.text := char(pchar(edit2.text)+ $20)					

und wenn ich es ohne verschlussenlung mache kommt bei jeder eingabe das gleiche rauss:
ausblenden Delphi-Quelltext
1:
edit1.text := char(pchar(edit2.text){+ $20})					

brauch hilfe bitte.

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt
Chryzler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: Sa 14.04.07 10:42 
Hi,

bitte verwende nächstesmal Delphi-Tags, wenn du einen Quelltext hier postest: [delphi]dein Code...[/delphi]

Du musst in einer Schleife jedes Zeichen in dem String durchgehen und es einzeln verschlüsseln:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var
  i: Integer;
begin
  Edit1.Text := '';
  for i := 1 to Length(Edit2.Text) do
    Edit1.Text := Edit1.Text + {das i-te Zeichen von Edit2.Text, verschlüsselt};
end;

Den Rest bekommst du selber hin. ;)


Zuletzt bearbeitet von Chryzler am Sa 14.04.07 10:53, insgesamt 1-mal bearbeitet
Corpsman
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 228

KUbuntu 10.4
Lazarus
BeitragVerfasst: Sa 14.04.07 10:52 
@Comp-Freak

Was eine Verschlüsselung sit , ist dir aber klar, oder ?

In deinem Fall wird einfach auf jedes Zeichen der Wert 32 = Hex 20 draufaddiert. Und somit deine Zeichen "verschoben"

Das ist natürlich nicht gerade eine Sichere Verschlüsselung.

und das du das Verschlüsselte Ergebnis nicht wirklich lesen Kannst ist schon OK, denn es gibt ja auch Zeichen die Probleme machen wie z.b. #13 oder #8 die kannst du dir so natürlich nicht anzeigen lassen.

ich empfehle etwas in der Art

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
function Crypt(Bla:String;Key:integer):String;
var i :Integer;
begin
  randset(key);
  result := '';
  for i := 1 to Length(bla) do begin
    Result := Result + chr(odd(bla[i]) xor random (256));
  end;
end;


Da ich das aber grad so blind gecoded hab must evtle Fehler selbst noch Korigieren

_________________
--
Just Try it.
Chryzler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: Sa 14.04.07 11:16 
user profile iconCorpsman hat folgendes geschrieben:
ich empfehle etwas in der Art

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
function Crypt(Bla:String;Key:integer):String;
var i :Integer;
begin
  randset(key);
  result := '';
  for i := 1 to Length(bla) do begin
    Result := Result + chr(odd(bla[i]) xor random (256));
  end;
end;

Irgendwie werd ich aus deiner Verschlüsselung nicht schlau. :? randset gibt es nicht, du meinst wohl RandSeed. Und außerdem ist das eher eine Hash-Funktion als eine Verschlüsselung, oder wie willst du dazu eine Entschlüsselungsroutine schreiben!?
Aber um das gehts ja jetzt gar nicht. Back 2 Topic wie man so schön sagt. :)
Comp-Freak Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 89



BeitragVerfasst: Sa 14.04.07 11:20 
@Corpsman
ja ich weiss was eine verschlusselung ist aber aller anfang ist klein :).

ich werde aus deinem beispiel einfach nicht schlau. bin warscheinlich zu bloed...
mein debbuger weiss nicht was randset ist und google auch nicht...
-[Fehler] Unit1.pas(27): Undefinierter Bezeichner: 'randset'
dan gibts da noch zwei andere fehler hier:
ausblenden Delphi-Quelltext
1:
Result := Result + chr(odd(bla[i]) xor random (256));					

-[Fehler] Unit1.pas(30): Operator ist auf diesen Operandentyp nicht anwendbar
-[Fehler] Unit1.pas(30): Inkompatible Typen

entshuldigung das ihr mich mit dem loefel futtern musst :(.
Corpsman
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 228

KUbuntu 10.4
Lazarus
BeitragVerfasst: Sa 14.04.07 11:26 
Also jetzt hab ich den Compiler halt doch noch angeworfen.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
function Crypt(Bla:String;Key:integer):String;
var i :Integer;
begin
  randseed:=key;
  result := '';
  for i := 1 to Length(bla) do begin
    Result := Result + chr(ord(bla[i]) xor random (256));
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.text := Crypt(edit1.text,35132);
end;


Erstellt ein Formular und macht nen Button und ein Edit drauf.

1. Klick Verschlüsseln
2. Klick Entschlüsseln

_________________
--
Just Try it.
Comp-Freak Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 89



BeitragVerfasst: Sa 14.04.07 11:44 
Wow Danke !
nur noch eine frage: wie gross/klein kan/muss der key sein?
Nochmals danke !
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Sa 14.04.07 11:46 
Low(LongInt) to High(LongInt)

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Comp-Freak Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 89



BeitragVerfasst: Sa 14.04.07 11:50 
user profile iconGTA-Place hat folgendes geschrieben:
Low(LongInt) to High(LongInt)

??? Dadrauss werde ich (wieder mahl) nicht schlau ???
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Sa 14.04.07 11:53 
-2147483648 bis 2147483647

LongInt -> F1.


PS: Mal ohne h. Draus mit einem s.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Sa 14.04.07 14:09 
@Corpsman:

ausblenden Delphi-Quelltext
1:
..chr(ord(bla[i]) xor random (256)					


das ist definitiv mal ne verschlüsslung, kannst mir mal bitte erklären, wie die entsprechende entschlüsslung funktioniert? wäre ja vllt für den urheber dieses posts ganz interessant, da er scheinbar allet nur eintippt ohne es zu verstehen (@ComFreak: bitte nicht falsch verstehen!)

:flehan:

:r:

_________________
if you have what they want - they'll find a way to take it (bruce sterling)
WOW - 10 JAHRE Mitglied beim Delphi-Forum. Wie die Zeit vergeht, Freunde.
Comp-Freak Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 89



BeitragVerfasst: Sa 14.04.07 14:41 
@ GTA
danke das verstehe ich :)
@ Rizla
ich glaub ich verstehe es schon. Gets so:
jeder buchstabe wird in einen anderen random buchstaben verwandelt.
Der random seed/password/key macht es dan moeglich das das gleiche random reingeht
wie rauskommt. Stimmt das?
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Sa 14.04.07 16:18 
Nee, wie denn bitte?
ausblenden Delphi-Quelltext
1:
2:
    
..chr(ord(bla[i]) xor random (256)

"ord(bla[i]) = 1 buchstabe des textes, verknüpfe den logisch (xor) mit irgendeinem wert, der dir gerade in den sinn kommt (random(256)) und gib den aus".
zumal es keine korrelation zu randseed gibt, ist die verschlüsselung nicht eindeutig und wenn dies der fall ist, ist eine eindeutige entschlüsslung nicht möglich!
woher willst du denn den genauen key für byte[x] nehmen? anhand des codes ist das eineindeutig nicht möglich ;)

[r!]izla

_________________
if you have what they want - they'll find a way to take it (bruce sterling)
WOW - 10 JAHRE Mitglied beim Delphi-Forum. Wie die Zeit vergeht, Freunde.
Dunkel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 682

Mac OS X Snow Leopard
Xcode 3.1
BeitragVerfasst: Sa 14.04.07 16:46 
Mit
ausblenden Delphi-Quelltext
1:
randseed:=key;					

ist eine Ver- & Entschlüsselung auch mit Random möglich.

Random gibt nämlich keine "Zufallszahlen" in diesem Sinne aus, es ist eher ein "Pseudo-Zufall". (siehe auch das hier)

Mit Randseed wird der "Zufallsgenerator" so "getriggert", dass er immer die selbe Reihenfolge von Zufallszahlen ausgibt.

_________________
Ich streite einsam mich mit dieser Oberflächenwelt
Gutes sei ein löblich Brot von dem ich zehre - bis zum Tod [Das Ich - Im Ich]
Comp-Freak Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 89



BeitragVerfasst: Sa 14.04.07 16:58 
@Rizla
user profile iconDunkel hat folgendes geschrieben:
Mit
ausblenden Delphi-Quelltext
1:
randseed:=key;					

Random gibt nämlich keine "Zufallszahlen" in diesem Sinne aus, es ist eher ein "Pseudo-Zufall"
....
Mit Randseed wird der "Zufallsgenerator" so "getriggert", dass er immer die selbe Reihenfolge von Zufallszahlen ausgibt.

Hah macht eben doch das immer das gleiche raus kommt :).
(nimms nich so ernst ich geniesse bloss einer der wenigen minuten in meinem leben in den ich mahl recht hab :))
rizla
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 417
Erhaltene Danke: 2

XP
FPC mit Lazarus
BeitragVerfasst: Sa 14.04.07 19:50 
sry, i missed it :)
aber wieder was gelernt!

rizla
-------------------
rizla heißt's, nicht Rizla oder rIZLA oder oder oder :motz: *g*

_________________
if you have what they want - they'll find a way to take it (bruce sterling)
WOW - 10 JAHRE Mitglied beim Delphi-Forum. Wie die Zeit vergeht, Freunde.