Passwörter verschlüsselt in de Registry schreiben
-
Hallöchen an alle
gibt es eine Funktion in der WinApi, welche Passwörter verschlüsselt in die Registry schreibt? Oder muss ich das Passwort doch erst selbst erschlüsseln?
Falls dem so ist hat jemand irgendwo Codeschnippsel über eine Verschlüsselungsalgorithmus oder weiß ein Tutorial zum Verschlüsseln von Strings?
Herzlichen Dank für eure Mühe im voraus.
Gruß CrazyP
-
ist wohl die bekannteste...
-
Ich mag mich ja irren, aber ist zlib nicht für Kompression anstatt für Verschlüsselung gedacht?
-
Hepi schrieb:
Ich mag mich ja irren, aber ist zlib nicht für Kompression anstatt für Verschlüsselung gedacht?
ja.
@CrazyPlaya
du musst es selbs machen. hier ein bsp. wie du ver- und entschlüsselst:void encrypt_stupid ( char* szInput, char* szOutput, char k ){ int s = strlen(szInput); for(int i=0; i<s; i++) szOutput[i] = (~szInput[i])^k; } void decrypt_stupid ( char* szInput, char* szOutput, char k ){ int s = strlen (szInput); for(int i=0; i<s; i++) szOutput[i] = ~(szInput[i]^k); }ist simple, aber für einfache sachen langt es.
-
Das fällt wohl in den Bereich Cryptography. Ich halte es aber für bedenklich, Passwörter speichern zu wollen. Stattdessen solltest Du lieber einen SECURITY_DESCRIPTOR speichern, oder meinentwegen auch nur dessen DACL (siehe auch: CreatePrivateObjectSecurity). Auf Zugriff prüfst Du Deinen SD mit dem User-Token (der User hat sein Passwort bereits bei der Anmeldung eingegeben) mit AccessCheck.
Für das Einstellen der Berechtigungen gibt es dann sogar ein fix und fertiges UI, mit dem jeder Admin sofort klarkommt, den Access Control Editor.
-
das con -King- klingt gut. aber nur mal so, falls man diese möglichkeiten nicht hat:
toom schrieb:
@CrazyPlaya
du musst es selbs machen. hier ein bsp. wie du ver- und entschlüsselst:void encrypt_stupid ( char* szInput, char* szOutput, char k ){ int s = strlen(szInput); for(int i=0; i<s; i++) szOutput[i] = (~szInput[i])^k; } void decrypt_stupid ( char* szInput, char* szOutput, char k ){ int s = strlen (szInput); for(int i=0; i<s; i++) szOutput[i] = ~(szInput[i]^k); }ist simple, aber für einfache sachen langt es.
an sich in ordnung. aber bei passwörtern isses besser, keine entschlüsselung vorzusehen. nur verschlüsselung. kannst ja das chiffrat abspeichern und bei passworteingabe einfach nicht das (abgespeicherte) chiffrat eitschlüsseln und mit der eingabe vergleichen, sondern die eingabe verschlüsseln und mit dem (gespeicherten) chiffrat vergleichen. das führt sofort zu lustigerem verschlüsselungscode, weil man sich gar nicht mehr ums entschlüsseln sorgen muß.