Autor |
Beitrag |
ma$ter
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 03.02.07 14:43
hallo,
ich bin neu bei delphi, d.h. ich bin erst seit ein paar monaten dabei.
ich möchte einen einfachen text verschlüsseln, aber nicht die Xor-methode verwenden!!!
kann mir jemand helfen, indem er wie sagt wie ich den text mit sonderzeichen, einfach, symmetrisch verschlüsseln und wieder entschlüsseln kann???
danke im voraus
|
|
marvin521993
      
Beiträge: 172
|
Verfasst: Sa 03.02.07 15:02
Hallo,
Verschlüsseln machst du mit wenn du zwei memos hast und eine combobox,wo ausgewählt wird um wie viel man verschlüsseln will, musst du einfach jeden buchstaben nach für nach verschlüsseln und in memo2 ausgeben.
LG
Marvin
|
|
marvin521993
      
Beiträge: 172
|
Verfasst: Sa 03.02.07 15:08
das sehe dann ungefähr so aus:
Delphi-Quelltext 1: 2: 3: 4:
| begin Memo2.Clear; For i:=1 to length(Memo1.text) do Memo2.Text := Memo2.Text + char(ord(Memo1.text[i])+StrToInt(ComboBox1.Text)); |
hoffe das ich dir helfen konnte
LG
Marvin
Moderiert von matze: Delphi-Tags hinzugefügt
|
|
ma$ter
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 03.02.07 17:32
@ Marvin
Ich wollte ein Schluesselwort in ein Edit-Feld eingeben, Ein-/ und Ausgabetext sollten in 2 Memofelder. Ein Buttonklick soll die Prozedur starten. Doch ich habe das Problem, dass Schluesselwort, Ein-/ und Ausgabetext die gleich Laenge haben muessen, was nicht der Fall sein soll.
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 03.02.07 17:35
Wenn du Xor wegen der Sicherheit nicht einsetzen willst, dann kann ich dir sagen, dass alles, was symetrisch ist, etwa genauso sicher ist
Hier mal ein Algo, den ich eben Freihand geschrieben und in einem anderen Thread gepostet hab. könnte fehler enthalten.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| function encode(text, key: String):String; var i,keypos:integer; begin keypos:=1; for i:=1 to length(text) do begin Result:=Result+char(byte(ord(text[i])+ord(key[keypos]))); inc(keypos); if keypos > length(key) then keypos:=1; end; end; |
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
ma$ter
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 03.02.07 17:38
Wenn du mir jetzt noch den Quelltext ungefaehr erklaeren koenntest, waer das echt net!!
!
Danke
|
|
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 03.02.07 17:58
hier mal kurz was zum lesen:
|
|
ma$ter
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 03.02.07 18:40
Kann mir jemand sagen, was ich tun muss, dass dieser Quelltext funktioniert???
D.h. wenn sowohl Eingabetext und Schluesselwort 3 Buchstaben haben funtioniert er, ansonsten nicht!!!
1: 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: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56:
| unit verschluesselung_Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Borland.Vcl.StdCtrls, System.ComponentModel;
type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; Label1: TLabel; Label2: TLabel; Memo2: TMemo; Memo1: TMemo; procedure Button1Click(Sender: TObject); private public end;
var Form1: TForm1; i, ii: integer; sw: string; te: string; vt: string;
implementation
{$R *.nfm}
procedure TForm1.Button1Click(Sender: TObject); begin if edit1.Text='' then begin showmessage('Bitte geben Sie ein Schlüsselwort ein!'); exit; end; if memo1.Text='' then begin showmessage('Bitte geben Sie den zu verschlüsselnden Text ein!'); exit; end; sw:=edit1.text; te:=memo1.Text; for i:=1 to length(te) do te[i]:=char(ord(te[i])+ord(sw[i])); memo2.text:=te; end;
end. |
Danke
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 03.02.07 18:46
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
Robinator
      
Beiträge: 275
WinXP
BDS 2006
|
Verfasst: Sa 03.02.07 18:49
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| procedure TForm1.Button1Click(Sender: TObject); begin if edit1.Text='' then begin showmessage('Bitte geben Sie ein Schlüsselwort ein!'); exit; end; if memo1.Text='' then begin showmessage('Bitte geben Sie den zu verschlüsselnden Text ein!'); exit; end; sw:=edit1.text; te:=memo1.Text; while sw < te do sw := sw + sw;
for i:=1 to length(te) do te[i]:=char(ord(te[i])+ord(sw[i])); memo2.text:=te; end; |
so sollte es gehen (auch wenn der algo geradezu lächerlich unsicher ist^^)
gruss, rob
_________________ erare humanum est
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 03.02.07 18:51
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
Robinator
      
Beiträge: 275
WinXP
BDS 2006
|
Verfasst: Sa 03.02.07 18:55
Ups, da hat sich wohl nen fehler eingeschliche, sry
Du hast natürlich recht, mit nem one time pattern ist selbst so ein algorithmus sicher, in dem fall wäre aber auch XOR (fast) absolut sicher.
(falls das jetzt nicht gaaanz stimmen sollte, nich gleich steinigen, ich bin kein wirklicher Fachmann in sachen Kryptologie)
gruss, rob
_________________ erare humanum est
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 03.02.07 19:58
Robinator hat folgendes geschrieben: | (falls das jetzt nicht gaaanz stimmen sollte, nich gleich steinigen, ich bin kein wirklicher Fachmann in sachen Kryptologie) |
Ich auch nicht, unsere Meinungen stimmen aber überein, also haben wir Recht.
Ein One Time Pad ist absolut 100% sicher, solang das Passwort wirklich nur 1 mal benutzt wird und dem Feind nicht in die Hände fällt ^^
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
ma$ter
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 03.02.07 20:50
Okay, danke!!!
Nur nebenbei, die obrgie Methode soll kein Passwortverschluessler sein, sonder lediglich einen einfachen Text fuer den ersten Augenblick nicht entzifferbar machen!!!
Ich glaub ich habs verstanden und was waer dann die naechste Stufe fuer einen sicheren Text bzw. was ist sicherer Xor oder die obendrueber???
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 03.02.07 21:10
alle polyalphabetischen verschlüsselungen sind etwa gleich sicher. Wenn du bei meinem Code + mit xor vertauscht, hast du auch ne xor verschlüsselung. die nächst höhere sicherheit? Hm .. mal abgesehen von zufallsgenerierten, langen Passwörtern gibts da wohl nur noch asymetrische verschlüsselungen. einfach mal googlen. AES is auch ein Stichwort, Advanced Encryption Standart...
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
ma$ter
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 03.02.07 22:12
Naechste Frage:
Ich habe die Xor Methode unter www.dsdt.info gefunden und ausprobiert. Unter dem Artikel stand, dass die Methode sehr unsicher ist. Kann mir jemand unkompliziert erklaeren was es mit dem Zuweisungoperator Xor eigentlich auf sich hat???
Danke im voraus!!!
|
|
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 03.02.07 23:37
|
|
ma$ter
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 04.02.07 14:16
@ JayEff
Wenn ich deine Methode nehme, bekomme ich's in ner Prozedur ja noch hin, aber wenn ich ne Funktion benutz klappts net mehr!!!
|
|
ma$ter
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 04.02.07 15:24
D.h. wenn ich die Funktion mit ner Procedure aufrufen will, kommt ein Fehler.
Wer kann mit helfen???
Danke - ih bin Anfaenger
|
|
azubi_20
      
Beiträge: 593
WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
|
Verfasst: So 04.02.07 15:31
ma$ter hat folgendes geschrieben: | D.h. wenn ich die Funktion mit ner Procedure aufrufen will, kommt ein Fehler.
|
was soll das heißen ?
poste mal quelltext und Fehler, dann sehen wir weiter...
|
|