AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

hagen reddman dec

Ein Thema von darknes · begonnen am 15. Feb 2011 · letzter Beitrag vom 16. Feb 2011
Antwort Antwort
Seite 2 von 2     12   
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#11

AW: hagen reddman dec

  Alt 15. Feb 2011, 19:35
Deswegen wollte ich die md5 unit von dec verwenden.
Hier wird der md5 string ja generiert aber diese function geht bei mir nicht da die md5.pas einen fehler anzeigt.
Delphi-Quellcode:
//function GetMD5(s: string): string;
//Begin
//result := MD5DigestToStr(MD5String(s)); //stammt aus der md5.pas die ich hier gefunden habe
//end;
Und in hex wird der md5 ja hier umgewandelt :
result := new_md5(IntToHex(x,0)); Hier wird doch der benutzer name in hex umgewandelt:
Part1(new_md5(GetUser)); Allso kann man keinen normalen md5 string generiren mit dieser unit?
@gammatester teste doch einfach mal die getmd5 function und du siehst was rauskommt.
Der md5 string soll ja für die anderen sachen erstellt werden nicht für 'abc'
sondern einen md5 string für den MD5 Hash the UserName
[Dies zum inzwischen gelöschten Teil]
Was immer es ist, auf jeden Fall nicht der MD5-Hash von 'abc'? Und schon gar nicht berechnet mit einer Deiner Code-Schnipsel.

Außerdem: Durch Zahlen zählen erhält man klein MD5 Hash.
Außerdem: Wieso wird neuerdings für RSA eine MD5 benötigt?

Im übrigen finde ich Deine Reaktion etwas - na sagen wir - merkwürdig. Du hast offensichtlich wenig Ahnung, wie Du zu einem richtigen Hashdigest kommst, 'findest' ein md5.pas Unit, die aber nicht funktioniert, willst deshalb DEC benutzen, und ich soll mal irgendeine weitere dieser Obskuritäten testen?

Was für ein Kraut rauchst Du eigentlich, um auf solche Ideen zu kommen?

Jetzt speziell auf den letzten Teil. Willst Du damit sagen, daß Du keine Ahnung hast, wie man von 'abc' auf einen beliebigen String verallgemeinert? Dann laß bitte die Finger von MD5 und erst recht von RSA.
  Mit Zitat antworten Zitat
darknes

Registriert seit: 11. Apr 2009
15 Beiträge
 
#12

AW: hagen reddman dec

  Alt 15. Feb 2011, 19:58
Das hab ich nicht gesagt und ich rauche kein was auch immer.

RSA Decrypt the final MD5 hash (result goes in 'b')
D679E4D420CF78D335DC9AD165F9D819 //b oder auch modul N base 16 format size 128 bits oder liege ich da falsch?
Hier aus der md5.pas

Delphi-Quellcode:
{ The MD5String function evaluates the MD5 hashsum for
  a string. The S parameter specifies a string to
  evaluate hashsum }

function MD5String(const S: string): TMD5Digest;
und hier das andere
Delphi-Quellcode:
{ The MD5DigestToStr function converts the result of
  a hashsum evaluation function into a string of
  hexadecimal digits }

function MD5DigestToStr(const Digest: TMD5Digest): string;
und meine function die ich verwenden wollte aber die nicht geht.
Delphi-Quellcode:
function GetMD5(s: string): string;
Begin
result := MD5DigestToStr(MD5String(s));//hier wird doch die md5 hashume in einen string umgewandelt oder liege ich da falsch?
end;
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#13

AW: hagen reddman dec

  Alt 15. Feb 2011, 20:20
Guten Abend,

mit Deiner angehängten MD5.pas funktioniert der folgende Code
ohne Murren.


Delphi-Quellcode:
uses
  md5;


procedure TForm1.Button1Click(Sender: TObject);
begin
  edit2.Text := MD5DigestToStr(Md5String(Edit1.Text));
end;
Nachtrag:
Meine Delphi Version: TDE 2006
Was ist denn Deine: >= 2009 -> String = Unicode String


Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
darknes

Registriert seit: 11. Apr 2009
15 Beiträge
 
#14

AW: hagen reddman dec

  Alt 16. Feb 2011, 12:22
Meine delphi version ist delphi 7 lite full welche version das genau ist kann ich dir nicht sagen scheint eine gemodde version von delphi 7 second edition zu sein.
Genau deswegen verstehe ich nur bahnhof bei jedem anderen geht diese md5.pas nur bei mir nicht.
Hab erst gedacht es läge an den vista api´s deswegen hab eine neuinstallation ohne diese api´s gemacht selber fehler.
Rsa kann sehr woll md5 verwenden für C da ja

Encrypt Cipher_text = M ^ E MOD N
Decrypt Message text = C ^ D MOD N

Oder hab ich das jetzt auch falsch verstanden?

Wollte es so lösen :
Delphi-Quellcode:
function new_md5(s:string):string ;
var
  t:THash_MD5;
begin
  t:=THash_MD5.Create;
  try
  t.Init;
Result:=t.CalcBinary('s',TFormat_HEX);
t.Done;
finally
  t.Free; //hier wird THash_MD5 freigelassen.
end;
end;
aber wenn ich das verwende bekomme ich einen range check error.
if (s <> '') and (s[1] <> '$') then

Geändert von darknes (16. Feb 2011 um 12:55 Uhr)
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#15

AW: hagen reddman dec

  Alt 16. Feb 2011, 12:45
Meine delphi version ist delphi 7 lite full welche version das genau ist kann ich dir nicht sagen scheint eine gemodde version von delphi 7 second edition zu sein.
Genau deswegen verstehe ich nur bahnhof bei jedem anderen geht diese md5.pas nur bei mir nicht.
Hab erst gedacht es läge an den vista api´s deswegen hab eine neuinstallation ohne diese api´s gemacht selber fehler.
Rsa kann sehr woll md5 verwenden für C da ja

Encrypt Cipher_text = M ^ E MOD N
Decrypt Message text = C ^ D MOD N

Oder hab ich das jetzt auch falsch verstanden?
Noch ein letzer Versuch:

Das ist doch aber völlig unerheblich ob C aus einem MD5 Hashherkommt oder erwürfelt wurde.

Wenn es immer noch dieser Fehler ist,
Ok hier an diese stelle MD5Update(Context, @Buffer, ReadBytes); zeigt ihr mir diesen error an [Error] md5.pas(407): Incompatible types: 'Array' and 'TByteArray'
hier ist die md.pas die ich verwende.
Da ich nichts an der md5.pas geändert habe verstehe ich bei diesem error nur bahnhof.
dann kann ich mir beim besten Willen nicht vorstellen, wie Du da hinkommst, denn das ist ja in der
function MD5Stream(const Stream: TStream): TMD5Digest; und Du verwendest (zumindest was Du bisher gezeigt hast) ja keine Streams.

Im übrigen habe ich schwere Sicherheitsbedenken bei Deinem Code: 128-Bit RSA ist viel viel zuwenig um sicher zu sein. Aber viel schlimmer ist die "Security by Obscurity" durch Deine Part1- bis Part5- Verwurschtelungen. Ist Dir eigentlich bewußt, daß allein Part1 höchsten 9 Bit Sicherheit erzeugt, wenn die 128 Eingangsbits zufällig sind, da Du 32 4-Bit-Werte summierst. Part2 bis Part5 werden diese 9 Bit Zufall noch weiter runterdrücken.

Geändert von gammatester (16. Feb 2011 um 12:47 Uhr)
  Mit Zitat antworten Zitat
darknes

Registriert seit: 11. Apr 2009
15 Beiträge
 
#16

AW: hagen reddman dec

  Alt 16. Feb 2011, 13:02
Nein der fehler hat sich doch geändert hab ich oben verbessert aber ich lande an dieser stelle im code mit md5.pas wie gesagt warum auch immer da ich keine streams verwende wie du schon gesagt hast.
Das 128 zu wenig sind ist mir schon klar aber das ist nicht für eine software die ich schützen will.
Sagt dir das word keygenme etwas besser gesagt in diesem falle tut_me.
Ich hoffe das thema ist hier erlaubt wenn nicht tut es mir leid.
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#17

AW: hagen reddman dec

  Alt 16. Feb 2011, 13:15
Das 128 zu wenig sind ist mir schon klar aber das ist nicht für eine software die ich schützen will.
Sagt dir das word keygenme etwas besser gesagt in diesem falle tut_me.
Ja wieso sollte es nicht erlaubt sein? Verboten ist es ja erst wenn du an fremden Dateien rumfuhrwerkst, wo der Programmierer nicht möchte das du das machst! Diese Art von Programmen, sin da ja dafür gemacht geknackt zu werden. Sicher ist deren Funktion fraglich, vor allem für dich, da du dich anscheinend mit der Materie noch nicht so auskennst. Vllt solltest du daher erstmal Anfangen, mit Programmen die auch einen Nutzen haben, und nicht nur als Übungszweck für irgendwelche Hacker bereitstehen.
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
darknes

Registriert seit: 11. Apr 2009
15 Beiträge
 
#18

AW: hagen reddman dec

  Alt 16. Feb 2011, 13:41
Ich kenne mich schon mit dieser Materie aus nur halt auf dem wege des pachtens hab erst zwei keygens geschrieben beide waren aber ohne cryptos und dieser hier ist ja für mich zum lernen gedacht nicht für sonstige zwecke.
Wobei das eine kein richtiger keygen ist da die serial nicht random ist.
Da ein echter keygen random serials ausgibt die aber immer gültig sind.
Das mit dem kraut rauchen könnte man alls falsche unterstellung anzeigen nur so alls tip.
Back to topic :
Wenn ich dich auf sonstige art beleidigt habe tut es mir leid @gammatester
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#19

AW: hagen reddman dec

  Alt 16. Feb 2011, 21:46
Ok, ich gebe zu für einen unerfahrenen Delphientwickler ist die korrekte Benutzung der DEC THash Klassen bischen ungewohnt.

Alle .Calc???() Methoden der THash Klassen sind als Klassenmetoden deklariert. Dh. du benutzt

Delphi-Quellcode:
  WriteLn( THash_M5.CalcBinary('abc', TFormat_HEX) );
  WriteLn( THash_SHA1.CalcFile('c:\test.txt', TFormat_MIME) );
oder

Delphi-Quellcode:
var
  MyClass: THashClass;
begin
  MyClass := THash_MD5;
  WriteLn( MyClass.CalcBinary(.....) );
end;
In den obigen Beispielen wird per Einzeiler und mit Hilfe von Klassenmethoden alles in einem Rutsch berechnet, was die häufigste Anwendungen ist.

Nur in den selteneren Fällen benutzt man die Hash Klassen im DEC auf die gewohnte und herkömliche Weise:

Delphi-Quellcode:
var
  Hash: TDECHash;
  Data: array[0..2] of Byte;
begin
  Hash := THash_MD5.Create;
  try
    Hash.Init;
    Hash.Calc(Data[0], 1);
    Hash.Calc(Data[1], 2);
    Hash.Done;
    Result := Hash.DigestStr(TFormat_HEX);
  finally
    Hash.Free;
  end;
end;
In diesem Beispiel sieht man die einschlägige Vorgehensweise mit der Erstellung einer Objektinstanz. Deweiteren benutzt man die Methode .Calc() mit typlosen Zeiger auf Datenbereiche und Angabe der zu berechneden Datenbytes.

Man benutzt dies so wenn man, wie oben im Bespiele gezeigt, über getrennte Daten/Speicherbereiche eine Berechnung durchführen muß so als wenn diese zusammenhanglosen Datenbereiche ein einziger Datenbereich wäre. Also Zb. wenn man komplexere Datenstruktren/Records in/aus Streams speichdert/lädt und im gleichen Atemzug auch einen Hash berechnen möchte.

Die zweite Methode der Benutzung der Hashklassen ist also eher die Ausnahme und dient der Komnpatibilität und der Implementation besonderer Verfahren/Protokolle. Siehe dazu zB. die Medthoden .KDF?() und .MGF?() an die quasi dynmische Datenbereiche errechnen, diese mit den übergebenen Datenberechen verkettet und so eine Berechnung stückchenweise durchführen so als hätte man diese Daten in einem Datenbereich erstmal vorher berechnet.

Gruß Hagen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 16:15 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