![]() |
Kleine Verschlüsselung
Delphi-Quellcode:
Das ist meine kleine Verschlüsslung ist nicht sehr hart zu knacken aber auch da muss man erstmal drauf kommen
function verschüssel (Wort: string) : string;
var i,f,x:integer; test, test1, test2 : string; begin test := ''; For i := 1 to length(wort) do begin test := Test+ '#' + Inttostr(Ord(Wort[i])) + '#'; test2 := Inttostr(Ord(Wort[i])) + '#'; For f := Length(test2) to 9 do begin x := random (215) +36; test1 := Chr(x); test := test + test1; end; end; result := tesT; end; function entschüssel (Wort: string) : string; var Buchstaben : TStringList; i,f : integer; test: string; Test1 : TStringList; begin test := ''; Test1 := TStringList.Create; Buchstaben := TStringList.Create; For i := 1 to length( wort) do begin If wort[i] = '#' then begin Buchstaben.add (InttoStr(i)); end; end; For i := 1 to Buchstaben.count -1 do begin For f := StrtoInt(Buchstaben[i-1]) +1 to StrtoInt(Buchstaben[i])-1 do begin test := test + wort[f]; end; try StrtoInt(test); If test <> '' then Test1.add (test); test := ''; except test := ''; end; end; test := ''; For i:= 0 to Test1.Count -1 do begin test := test + chr (StrtoInt(Test1[i])); end; result := test; end; |
Re: Kleine Verschlüsselung
Ist das nicht eher was für die Code-Bibliothek? :gruebel:
MfG freak |
Re: Kleine Verschlüsselung
Hallo Sascha,
vielleicht kannst Du ja noch was zu Deinem Verfahren sagen. Wo liegen die Stärken, wo liegen die Schwächen - was grenzt es gegenüber den anderen Verfahren ab, die zu finden sind? |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Open-Source" nach "Neuen Beitrag zur Code-Library hinzufügen" verschoben.
Ich habe es mal hierhin verschoben, auch wenn ich denke, dass es für die CL nicht reichen würde, aber das sieht mann dann ja noch. :) |
Re: Kleine Verschlüsselung
also ich denke das die Schwächen auf der Hand liegen, wenn man die Wert in eine Datei speichert und sich dann an mal anguckt dann endeckt man das es viele verwirrende zeiche gibt aber auch Zufälltig gut lesbare zahlen und dann kommt man auch irgendwann drauf das es sich um ord() handelt.
Ich denke aber das das ganze für den "Einfachen gebraucht" geeignet ist |
Re: Kleine Verschlüsselung
Ich würde sagen, die frißt ganz schön Speicher.
Hab's nicht getestet, aber der verschlüsselte String wird wohl 10 mal so groß sein, wie der Unverschlüsselte, außderem helfen zufällige Bytes darin überhaupt nüschts, wenn man vorher schon weiß, daß man einfach nur jeweils 10 Zeichen auslesen muß, sich die ersten Zahlen wischen den ersten beiden # vornehmen und diese per chr in ein Byte umwandeln muß ... die restelich "zufälligen" Zeichen sind also vollkommen sinnlos und jedem, der nur halbwegs was von Ent-/Verschlüsselung versteht, wird auffallen, daß diese Zeichen nicht zum Eingangsstring gehören können ... entweder sind's immer die Selbern, da di ja das Randomize vergessen hast, oder die sind immer anders, was bei 'nem unverändertem Eingansstring kaum mögich ist. So, und jetzt darf der Hagen auch noch darüber herziehn ._. [nachtrag] wiedermal ein bissl langsam -.-'' @Sascha_OW noch einfach wird's, weil die zufällg gut lesbaren Zahlen schön eingepackt sind und immer gut positioniert :mrgreen:
Delphi-Quellcode:
#123#.....#12#......#123#.....#12#......
|
Re: Kleine Verschlüsselung
ich werde jetzt noch mal 2..3 Sachen nach bessern
|
Re: Kleine Verschlüsselung
so ich habe das denn noch mal überdacht:
Delphi-Quellcode:
function verschüssel (Wort: string) : string;
var i,f,x,v,ran:integer; test, test1, test2, ran_str, test3 : string; begin test := ''; ran_str := ''; ran := 0; For i := 1 to length(wort) do begin ran := random(8)+1; test2 := Inttostr(Ord(Wort[i])*154) ; v := Ord(Wort[i]) * 154 * length(test2); test2 := InttoStr(v) + InttoStr(length(test2)); test := Test+ InttoStr(ran); If length(test) <10 then ran_str := ran_str + '0' + inttostr(length(test)) else ran_str := ran_str + InttoStr(length(test)); test := test + test2; end; If length(test)> 9 then ran_str := ran_str + inttostr(length(test)) else ran_str := ran_str + '0' + InttoStr(length(test)); test3 := InttoStr(Length(ran_str)); If strtoint(test3) < 9 then test3 := '0' + test3; result := test3 + ran_str + test; end; function entschüssel (Wort: string): string; var i,f,x,y, test6, test7 : integer; test1,test2: TStringList; test, test3, test4, test5, test8,test10 : string; begin x := 0; test := ''; test3 := ''; result := ''; test10 := ''; test4 := ''; test6 := 0; test7 := 0; test8 := ''; test1 := TStringList.Create; test2 := TStringList.Create; x := 2; For i := 2 to (StrToInt((Wort[1] + Wort[2]))+ 2) div 2 do begin x := x + 2; test := Wort[x -1]+ wort [x]; If i = (StrToInt((Wort[1] + Wort[2]))+ 2) div 2 then test1.add (Inttostr(Strtoint(test) + 1)) else test1.add (test); end; For i := 3 + StrtoInt(Wort[1] + Wort[2]) to length (wort) do test4 := test4 + Wort[i]; For i := 1 to (StrtoInt(Wort[1] + Wort[2]) div 2) -1 do begin For f := strtoint(test1[i - 1]) +1 to strtoInt(test1[i]) -1 do begin test3 := test3 + test4[f]; end; test5 := test3[length(Test3)]; test6 := StrtoInt(test5); For y := 1 to length(test3) - 1 do begin test10 := test10 + test3[y]; end; test7 := Strtoint(test10) div strtoint(test5); test7 := test7 div 154; test8 := Test8 + chr(test7); test7 := 0; test3 := ''; test10 := ''; end; result := test8; end; Der string sieht dann so aus: Zitat:
Jetzt könt ihr mir nicht sagen das das all zu schenll zu knacken ist [edit=Admin]String umgebrochen, um Scrollbalken zu vermeiden. ;-) Mfg, Daniel[/edit] |
Re: Kleine Verschlüsselung
Naja, das Problem würde ich aber definitiv darin sehen, dass du keinen Schlüssel verwendest. Sobald jemand deinen Code kennt hast du ein großes Problem.
|
Re: Kleine Verschlüsselung
das ist schon war, aber ich kenne mich da nicht so gut aus und weiss nicht so recht wie das mit den Schlüüseln läuft und ich finde als einfache Verschlüüselung geht das doch durcvh
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:35 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