Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
gandro

Anmeldungsdatum: 18.02.2005 Beiträge: 108 Wohnort: Schweiz
|
Verfasst am: 18.02.2005, 19:59 Titel: MD5-Algorithmus unter QuickBasic |
|
|
Hallo ...
Ich suche eine Routine (oder eine Anleitung wie ich eine mache, auf Deutsch) für QuickBASIC 7.1 (PDS), mit der ich aus einem String eine MD5-Summe produzieren kann. Ich habe auf qbasic.de irgendwo gelesen, dass es eine Lib gibt, die das für PowerBasic ermöglicht. Gibt es sowas auf für QuickBasic (7.1) bzw. woher bekomme ich eine deutsche Anleitung (ich kenne RFC1321, verstehe sie aber nicht ) um eine solche Routine zu programmieren und in mein Programm einzubauen. Leider kann ich nicht einfach ein Kommandozeilen MD5-Tool per SHELL Befehl einzubauen.
Ich wäre froh wenn mir jemand helfen könnte...
Greetz
gandro |
|
Nach oben |
|
 |
Quark48

Anmeldungsdatum: 16.10.2004 Beiträge: 559 Wohnort: Saltendorf a.d. Naab bzw. Teublitz i.d. Oberpfalz / Bayern
|
Verfasst am: 18.02.2005, 20:43 Titel: |
|
|
Hallo!
Für was brauchst du denn einen MD5-Algoritmus?
Für Prüfsummen o.ä.? Dann reicht auch CRC16 oder
sogar das Zusammenzählen der Werte der einzelnen
Bytea aus. Letzteres erkennt aber leider keine vertauschten
Zeichen usw.
Also für Prüfsummen würde ich CRC16 / CRC32 empfehlen. _________________ Grüßle, Stefan
***
Wenn ein Programm auf nem alten Rechner gut läuft, dann läuft´s auf nem neuen erst recht!
Ich habe/hatte keine feste Spange und auch keine Schwester. Der Rest stimmt. Es tut mir leid... :-/ |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 18.02.2005, 22:03 Titel: |
|
|
Hm, damit könnte man bei phpBBs passwörter knacken wenn man an die DB-Einträge kommt  _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 18.02.2005, 22:07 Titel: |
|
|
Message Digest 5 ist unter RFC 1321 definiert:
http://www.ietf.org/rfc/rfc1321.txt
Unter RFC 3174 wird noch das alternative SHA1-Hashberechnungsverfahren beschrieben.
In beiden RFCs sind Codebeispiele zu finden; für jemand, der sich mit C/C++ etwas auskennt, sollte es nicht schwer fallen, das Ganze nach QB zu portieren!
Linux:
Code: | man md5sum
man sha1sum |
(zwei Shellbefehle - empfehlenswert, um die korrekte Funktionsweise des QB-Programms testen zu können!) _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
gandro

Anmeldungsdatum: 18.02.2005 Beiträge: 108 Wohnort: Schweiz
|
Verfasst am: 18.02.2005, 23:22 Titel: |
|
|
Wie schon gesagt kenne ich die RFC1321 Doku, sie nützt mir aber nichts da ich nicht sehr gut Englisch kann (und schon gar keine Mathematischen Ausdürcke) und 2. leider auch kein C ...
Ich suche eine Möglichkeit, ohne Shell Befehl eine Zeichenfolge in MD5-Code zu verwandeln...
Oder, falls es wie ich denke im moment keine solche Routine gibt, woher ich eine deutschsprachige MD5-Dokumentation bekomme .... |
|
Nach oben |
|
 |
Stephan

Anmeldungsdatum: 05.10.2004 Beiträge: 358 Wohnort: Hessen - 20km Nördlich von Frankfurt am Main
|
Verfasst am: 19.02.2005, 13:22 Titel: |
|
|
@MisterD , damit kannst du keine einträge knacken,
die MD5 verschlüsselung ist ja frei zugänglich,
der Harken an der sache ist nur, das ja nicht die passwörter verglichen verden,
sondern die prüfsummen.
Und ein zurückrechnen der Prüfsumme in das passwort ist nicht möglich. _________________ 'Wir schätzen die Zeit erst, wenn uns nicht mehr viel davon geblieben ist.'
Leo Tolstoi |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 20.02.2005, 13:34 Titel: |
|
|
das mein ich ja. du probierst der reihe nach alle PWs durch. Du übersetzt jedes per MD5 und vergleichst das dann.. das geht schon. du weißt dann ja das Quellwort der Sequenz da du es eben verschlüsselt hast. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Stephan

Anmeldungsdatum: 05.10.2004 Beiträge: 358 Wohnort: Hessen - 20km Nördlich von Frankfurt am Main
|
Verfasst am: 20.02.2005, 14:29 Titel: |
|
|
Jo,per Bruce Force kannst du jedes Passwort knacken,
es ist nur eine Frage der Zeit.
Und wenn das Ursprungs passwort z.b. 20 Zeichen lang ist, und noch zeichen wie §$%&/()-:, enthält, wirst du vermutlich Jahre brauchen. _________________ 'Wir schätzen die Zeit erst, wenn uns nicht mehr viel davon geblieben ist.'
Leo Tolstoi |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 20.02.2005, 18:53 Titel: |
|
|
ja, mit QB sowieso.  _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
gandro

Anmeldungsdatum: 18.02.2005 Beiträge: 108 Wohnort: Schweiz
|
Verfasst am: 20.02.2005, 20:07 Titel: |
|
|
So wie es aussieht ist MD5 nicht für QB geschaffen
Aber kennt jemand gerade ein (leicht) verständliches Tutorial für eine Verschlüsselunge, die sich nicht entschlüsseln lässt (für QB natürlich ) |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 20.02.2005, 20:09 Titel: |
|
|
Geh mal auf
www.east-power-soft.de
da ist ne gute erklärung zur chew-crypto-methode, die is zimlich sicher und einfach zu implementieren. ich hab selber schon 2 (en-)coder darin geschrieben, einen in qb, einen in vb.
sollte recht leicht zu verstehen sein, ICH habs auf jeden fall gecheckt *g*
wenn du willst, kann ich dir mal n beispielprog zu schicken *g*
/Danke an E-P-S *g* _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
 |
gandro

Anmeldungsdatum: 18.02.2005 Beiträge: 108 Wohnort: Schweiz
|
Verfasst am: 20.02.2005, 20:27 Titel: |
|
|
ich habe mir dieses crew-ding auch vorher schon angeschaut, aber das lässt sich ja wieder entschlüsseln (oder hab ich da was falsch verstanden )
Ich suche irgend so ein Algorithmus mit dem ich einen nicht mehr entschlüsselbaren Code kriege. Ist für eine Passwortabfrage. Das Passwort wird verschlüsselt gespeichert und wenn man ein Passwort eingibt wird das verschlüsselte eigegebene zusammen mit dem verschlüsselten gespeicherten verglichen und dann bestimmt, ob man rein darf oder nicht (Wie MisterD schon sagte)...
Das ganze darf nicht entschlüsselbar sein, da es ein OpenSource Programm gibt |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 20.02.2005, 20:32 Titel: Bekannte Einweg-Verschlüsselungsverfahren |
|
|
UNIX/Linux:
=> ist dort die Standard-Passwortverschlüsselung für /etc/shadow
Windows NT 4.0 (SAM-Datenbank):
Dort gibt es die LM-Hashes; Quellcode, wie man einen LM-Hash berechnet, ist in Samba enthalten.
Ausserdem gibt es dort natürlich noch den wesentlich stärkeren NTLM-Hash. Ist meines Wissens ein MD4. Codebeispiel dazu ist auch wieder im C-Quellcode von Samba zu finden. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
gandro

Anmeldungsdatum: 18.02.2005 Beiträge: 108 Wohnort: Schweiz
|
Verfasst am: 20.02.2005, 20:35 Titel: Re: Bekannte Einweg-Verschlüsselungsverfahren |
|
|
dreael hat Folgendes geschrieben: | UNIX/Linux:
=> ist dort die Standard-Passwortverschlüsselung für /etc/shadow
Windows NT 4.0 (SAM-Datenbank):
Dort gibt es die LM-Hashes; Quellcode, wie man einen LM-Hash berechnet, ist in Samba enthalten.
Ausserdem gibt es dort natürlich noch den wesentlich stärkeren NTLM-Hash. Ist meines Wissens ein MD4. Codebeispiel dazu ist auch wieder im C-Quellcode von Samba zu finden. |
ja, aber da ich weder C kann noch auf externe Programme zugreiffen will, frage ich eben, wie ich das in QB realisieren kann... |
|
Nach oben |
|
 |
E-P-S

Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
|
Verfasst am: 21.02.2005, 00:47 Titel: |
|
|
gandro hat Folgendes geschrieben: | ich habe mir dieses crew-ding auch vorher schon angeschaut, aber das lässt sich ja wieder entschlüsseln ... Ich suche irgend so ein Algorithmus mit dem ich einen nicht mehr entschlüsselbaren Code kriege. |
B I T T E ? ? ?
Wozu etwas verschlüsseln wenn es niemals entschlüsselt werden kann?
Dann kannst du ja gleich Zufallswerte irgendwo hinschreiben. Selbstverständlich kann auch die CHEW Methode entschlüsselt werden. Die Frage ist nur wie groß der technische / zeitliche Aufwand sein muß um eine Verschlüsselung zu "knacken" und ich denke für das was du vor hast (was auch immer) ist die CHEW Methode sicher genug.
Also für jetzt und in Zukunft ... 1. lesen, 2. verstehen, 3. fragen. _________________ Man kann sich öfter als zweimal im Leben halb tot lachen. |
|
Nach oben |
|
 |
gandro

Anmeldungsdatum: 18.02.2005 Beiträge: 108 Wohnort: Schweiz
|
Verfasst am: 21.02.2005, 18:19 Titel: |
|
|
also, das ganze ist wie schon gesagt für eine Passwortabfrage: Man gibt ein Passwort ein und es wird verschlüsselt gespeichert (unverschlüsselt wäre ja grobfahrlässig).
Später, vielleicht erst nach Wochen öffnet man die Passwortabfrage wieder und gibt erneut das Passwort ein. Das eingegebene Passwort wird verschlüsselt und mit dem gespeicherten (verschlüsselten) Code verglichen...
Das ganze könnte ja man mit einem geheimen Schlüssel realisieren, aber mein Programm soll OpenSource (also der Code ist frei zugänglich ) sein, und da ist es nicht möglich, einen geheimen Schlüssel zu haben...
Jedes normale Passwortabfragesystem funktioniert so: z.B. Linux/Unix, dieses Forum, Windows NT, Netzwerkfreigaben usw.
Und unentschlüsselbare Verschlüsselungstechniken sind: MD4, MD5, SHA-1 usw. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
code
Anmeldungsdatum: 19.01.2005 Beiträge: 154
|
Verfasst am: 26.02.2005, 17:26 Titel: |
|
|
ich hab auch noch einen tipp:
die methode mit dem Zufallsgenerator ist gar nicht schlecht.
Nur etwas abgewandelt:
Zerlege das Passwort in einzelne Bytes, und adier die ASCI- Werte. mit diesem Zahlenwert kannst du nun den Zufallsgenerator initallisieren.
Und dann einfach die methode wie oben beschrieben anwenden.
Du brauchst nun keinen schlüssel im quelltext, weil der schlüssel in abhänigkeit vom passwort produziert wird.
(natürlich kann man auch diese verschlüsselung knacken, indem man alle zahlen als initalisierungscode nimmt, aber das kommt einer Brute Force
Methode gleich ) |
|
Nach oben |
|
 |
gandro

Anmeldungsdatum: 18.02.2005 Beiträge: 108 Wohnort: Schweiz
|
Verfasst am: 27.02.2005, 00:07 Titel: |
|
|
@code; das hab ich jetzt nicht so ganz kapiert?
Also zuerst die ASCII Werte zusammenzählen (kein Problem) aber wie dann weiter?
Mit einer Zufallszahl verschlüsseln?
Könntest du es bitte nochmals erklären? |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 27.02.2005, 15:02 Titel: |
|
|
Naja, ganz einfach...:
Code: |
INPUT "PASSWORT"; pass$
FOR byte = 1 TO len(pass$)
vsByte = (RND * 256 + ASC(MID$(pass$, byte, 1))) MOD 256
totalByte = totalByte + vsByte
NEXT
|
und schon erhältst du eine wunderbare Zahl, die (außer durch Brute force ) nicht mehr zu knacken ist. Da das Passwort recht lang sein kann, solltest du totalByte als LONG dimensionieren, wenn nicht sogar als Currency (oder so ähnlich, die Suffix ist auf jeden fall ein @.)
Wichtig ist aber, dass du dann in deinem Programm eine RANDOMIZE-Zeile hast. Und nicht RANDOMIZE TIMER, weil ja dann jedes mal was anderes rauskommt. Da kannst du dich jetzt entscheiden, ob die einfach im Programm eingebaut werden soll
(RANDOMIZE 1), oder ob das vom User als zweite sicherheit eingegeben werden soll (INPUT rand: RANDOMIZE rand).
Damit solltest du dann endgültig auf der sicheren Seite sein *g* _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
 |
|