Einzelnen Beitrag anzeigen

Davidb

Registriert seit: 11. Nov 2005
Ort: Hamburg
15 Beiträge
 
Delphi 2005 Personal
 
#1

bitte verschlüsselungsfunktion bewerten/testen

  Alt 28. Nov 2005, 19:45
ich hoffe mal das ist hier die richtige stelle für meine frage/bitte.

also ich habe für ein schulprojekt eine verschlüsselungsalgo programmiert und wüsste jetzt gern was ihr dazu sagt bzw. ob ihr verbesserungsvorschläge habt oder andere anregungen.

jetzt zu der art der verschlüsselung:
die verschlüsselung arbeitet mit einem passwort das prinzipiell natürlich beliebig lang sein kann, es wird intern jedoch in einen hash mit 32 zeichen umgewandelt(mit dem DEC von hagen) weshalb ein längeres passwort eigentlich keinen sinn macht. mit diesem passwort werden dann die ersten 32 zeichen des zu verschlüsselnden textes xor verknüpft. dann wird aus dem hash wiederum ein hash gebildet mit dem die nächsten 32 zeichen xor verknüpft werden. und das immer so weiter bis der text zu ende ist.

für wie sicher haltet ihr diese verschlüsselung? habt ihr irgenwelche tipps?

natürlich könnte ich auch die verschlüsselungsfunktionen nutzen die im DEC enthalten sind, aber wie schon gesagt es ist für die schule und da zählt halt das selbermachen.

und hier noch die funktion:
Delphi-Quellcode:
procedure TForm1.codierenClick(Sender: TObject);
    var
      s: string; //temp string des zu verschlüssenden textes
      i: Integer;
      j: Integer;
      n: Integer;
      Hpass: string;
begin
    Hpass := THash_MD5.CalcString(pass, nil, fmtHEX); //pass = das passwort das eingegeben wurde

    if length(pass) > 10 then begin
        j := 0;
        s := Inhalt.Text; //Inhalt.Text = text feld mit text der verschlüsselt werden soll
        for i := 0 to length(s) do begin
            j := i mod length(Hpass);
            n := Ord(Hpass[j]);
            n := n mod 31;
            s[i] := char(n Xor Ord(s[i]));
            if (j = 0) and (i <> 0) then begin
                Hpass := THash_MD5.CalcString(Hpass, nil, fmtHEX);
            end;
         end;
        Inhalt.Text :=s;

    end
    else
        Inhalt.Text := 'Sie müssen ein Passwort mit mehr als 10 Zeichen eingeben';
end;
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::Es gibt immer mehrere::::::::::::
:::::::::::::::Versionen von der:::::::::::::::
::::::::::::::::::::Wahrheit::::::::::::::::::::
  Mit Zitat antworten Zitat