hab mal schnell ein kleines Prog gebastelt, weil ich öfters mal MD5-Passwortstrings oder auch mal einen Salt2 für meine htpasswd-geschützten Internetseiten brauch.
Das Teil schreibt die verschlüsselten Codes On-The-Fly, also während des Eintippens ins Programmfenster. Von dort kanns einfach per Markieren und Kopieren herausgenommen werden.
Als kleines Schmankerl hab ich mir auch noch eine Funktion aus der API gesucht, damit man das Passworteingabefeld umstellen kann von Klartext auf Verborgen und andersrum.
Apropos... weiss irgendjemand, warum mein Eingabefeld nach der Aufforderung Sendmessage_(GadgetID(x),#EM_SetPassWordChar,43,0) nicht automatisch aktualisiert wird? Ich musste einen Setfocus_(GadgetID(x)) setzen, damit das Teil passt...
Naja, ich hoffe irgendwer kanns brauchen. Getestet und lauffähig auf Version 3.92 mit aktuellen Libs.
Code: Alles auswählen
; Passwortverschlüsselung
Passwort$=""
Saltsalt$="HW"
If OpenWindow(100,0,0,400,310,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Passwortverschlüsselung - Harry Wessner - 2005")
If CreateGadgetList(WindowID(100))
Frame3DGadget(100,10,10,380,50,"Bitte geben Sie Ihr Passwort ein")
StringGadget(110,20,30,270,20,Passwort$)
ButtonGadget(115,300,30,80,20,"Klartext")
Frame3DGadget(120,10,70,380,50,"MD5-Fingerabdruck")
StringGadget(130,20,90,360,20,MD5Fingerprint(Passwort$,Len(Passwort$)),#PB_String_ReadOnly)
Frame3DGadget(140,10,130,380,80,"DES-Fingerabdruck")
TextGadget(150,20,150,250,20,"Verwendeter Schlüssel:",512)
StringGadget(160,280,150,100,20,Saltsalt$)
StringGadget(170,20,180,360,20,DESFingerprint(Passwort$,Saltsalt$),#PB_String_ReadOnly)
SendMessage_(GadgetID(160),#EM_LimitText,2,0)
SendMessage_(GadgetID(110),#EM_SetPassWordChar,43,0)
EndIf
Repeat
; Wenn sich an den Eingabefeldern was tut, hier Aktualisieren
Neuerpass$=GetGadgetText(110)
Neuersalt$=GetGadgetText(160)
If Neuersalt$<>Saltsalt$ Or Neuerpass$<>Passwort$
Saltsalt$=Neuersalt$
SetGadgetText(170,DESFingerprint(Neuerpass$,Neuersalt$))
EndIf
If Neuerpass$<>Passwort$
Passwort$=Neuerpass$
SetGadgetText(130,MD5Fingerprint(Passwort$,Len(Passwort$)))
EndIf
; Ereignisverfolgung
Select WindowEvent()
Case #PB_Event_Gadget
Select EventGadgetID()
Case 115
If GetGadgetText(115)="Klartext"
SetGadgetText(115,"Verbergen")
SendMessage_(GadgetID(110),#EM_SetPassWordChar,0,0)
SetFocus_(GadgetID(110))
ElseIf GetGadgetText(115)="Verbergen"
SetGadgetText(115,"Klartext")
SendMessage_(GadgetID(110),#EM_SetPassWordChar,43,0)
SetFocus_(GadgetID(110))
EndIf
EndSelect
Case #PB_Event_CloseWindow
Ende=1
Case 0
Delay(1)
EndSelect
Until Ende=1
EndIf