![]() |
Passwortschutz
Hallo,
ich habe soeben mein 1. großes Prog fertiggestellt. Jetzt hab ich micht Schrecken gesehen, dass in der EXE-Datei irgendwo(aber trotzdem da) meine Zugangsdaten für den SQL Server liegen (hinterlegt in ZEOS-Komponente) Habe mich wegen Schutz schon schlau gemacht und was gefunden, dass die Datei komprimiert. Dann ist das zwar weg, aber wenn ich diese Datei öffne wird eine irgendwas.tmp erzeugt. Da steht's dann wieder drin. Gibt es da irgendeine Möglichkeit, dass die Sachen nicht so offen in der EXE stehen? |
Re: Passwortschutz
Du könntest die Daten verschlüsselt speichern, den Schlüssel verstecken/auch verschlüsseln und speichern und dann beim laden des Programms die Daten wieder entschlüsseln. Aber was du auch tust: Die Daten sind immer irgendwie knackbar oder man kann sie finden und knacken..
|
Re: Passwortschutz
Du kannst doch anstatt
Delphi-Quellcode:
schreiben:
server:='sqlserver'
Delphi-Quellcode:
Das wird dann bestimmt nicht aus der exe Datei sichtbar
a:='sq'
b:='l' c:='server' server:=a+b+c |
Re: Passwortschutz
Du kannst als erstes mal versuchen, die Daten zur Laufzeit in die Komponente zu geben.
Und zur Laufzeit kannst Du die ja per
Code:
zusammenbauen.
passwort := 't' + 'e' + 's' + 't';
Das sollte kurzfristig helfen. Gruß Jörn |
Re: Passwortschutz
stimmt, da bin ich noch gar nicht drauf gekommen. Danke für die SUPERSCHNELLEN ANTWORTEN
|
Re: Passwortschutz
Zitat:
|
Re: Passwortschutz
dann probier es mal aus...
ich hatte mal das gleiche problem, aber mit einem normalen hexeditor wie ultraedit oder so wird man wirklich nicht aus den ganzen zeichen schlau. |
Re: Passwortschutz
nee, nee. geht alles nicht.
dass es keinen 100%-schutz gibt weiß ich auch. aber so offensichtlich sollten die zugangsdaten auch nicht dort stehen! |
Re: Passwortschutz
Dann nimm dir doch die Daten und verschlüssele sie mit einem kleinen XOR-Algorithmus..
|
Re: Passwortschutz
Zitat:
|
Re: Passwortschutz
Zitat:
Man könnte ja mehrer Accounts dafür erstellen. Also für jede "Arbeit" einen anderen (falls genug verschiedene Arbeiten vorhanden sind, dass die Übersicht nicht völlig drunter leidet). Dann könnte man die Benutzernamen und Passwörter für die Accounts jeweils einzeln verschlüsseln und bei jedem eine andere Verschlüsselung benutzen. Macht dann zwar etwas mehr Arbeit, ist aber wenigstens etwas sicherer :mrgreen: jaja, ich hab wieder blöde Ideen :wall: |
Re: Passwortschutz
Zitat:
Ich meinte eher, dass der 'Standardbenutzer'-Account für das Programm sicherlich nicht in der Lage sein sollte beliebige Tabellen und/oder Benutzer anzulegen oder zu löschen, etc... |
Re: Passwortschutz
Du könntest vielleich den String aus den einzelnen ASCII-Codes zusammensetzen :gruebel:
|
Re: Passwortschutz
Zitat:
|
Re: Passwortschutz
Tja, das wäre in der Tat ein weiteres Problemchen, aber ich denke mit ner XOR-verschlüsselung wäre er in dem Fall ganz gut bedient, oder? :-)
|
Re: Passwortschutz
Zitat:
|
Re: Passwortschutz
wie funzt das mit der xor-verschlüsselung
|
Re: Passwortschutz
Zitat:
![]() //edit: ich hab übrigens auch ein kleines Verschlüsselungsprogramm geschrieben (hier nicht veröffentlicht). Wenn du Interesse hast, dann schreib mich einfach per PN an und ich schick dir den Source :thumb: |
Re: Passwortschutz
also ich glaube das hat so keinen wert. steht immer irgendwie was in der exe. Gibt es nicht eine Möglichkeit die EXE-Datei zu verschlüsseln?
|
Re: Passwortschutz
Zitat:
|
Re: Passwortschutz
Zitat:
Einen unknackbaren Schutz kann es wohl gar nicht geben, da man ja selbst noch wissen muss, wie man darauf zugreifen kann (bzw. das Programm muss es wissen). Und das kann ein "Angreifer" auch herausfinden. Die Kunst besteht wohl nur darin, es einem potentiellen Angreifer möglichst Schwer zu machen ;) |
Re: Passwortschutz
Zitat:
|
Re: Passwortschutz
Zitat:
Delphi-Quellcode:
oder :?:
pwchars := 'abcdefghijklmnopqrstuvwxyz';
IdWasAuchImmer.Password := pwchars[4] + pwchars[1]... |
Re: Passwortschutz
Zitat:
Du könntest dir einen String bauen, der nur aus Sonderzeichen besteht, den mit einer for-schleife durchlaufen, und jeden Buchstaben des erstens in den zweiten String kopieren, dabei aber von seinem ASCII-Code i+30 abzeiehen. Das ist nicht besonders aufwendig und toll, aber um einiges sicher, als den String so reinzuschreiben. Es gibt viele solche Methoden, die man auch verknüpfen kann. Man schaue sich nur mal die letzten Level der HackIt's an, die man - bwohl sier OpenSource sind, schwer knacken kann. Gruß |
Re: Passwortschutz
Also ich würde da wohl eine XOR-Verschlüsselung bemühen. Gegebenenfalls kann man den Schlüssel ja auch
noch verschlüsseln. Das ist auf alle Fälle sicherer, als zu irgendwelchen Sonderzeichen nur einen bestimmten Wert dazuzuaddieren (siehe Post von moritz). MfG Binärbaum |
Re: Passwortschutz
Zitat:
|
Re: Passwortschutz
also ich hab das jetzt so gelöst
ini-datei zeichensatz=abcdef.... ziffern..... und daraus les ich dann die daten. FUNZT DANKE FÜR ALLE ANTWORTEN |
Re: Passwortschutz
Du machst Dir da ein Problem, wo eigentlich keins sein sollte ;-)
In meinen Anwendungen stecke ich die DB-Zugangsdaten meist sogar in eine INI-Datei und die kann jeder lesen... kann er ja auch, denn der dort spezifizierte Datenbankuser hat a) nur Zugriff auf die vom Programm benötigte Datenbank b) nur die mindest-notwendigen Rechte auf den benötigten Tabellen Sprich: Ein "Cracker" kann nichts anderes mit den Zugangsdaten machen, als der legitime User des Programms auch -> es ist gar kein Schutz notwendig. Gruß Igotcha P.S. Wenn Dein Anwendungs-DB-User natürlich User="root" und Password="" ist, dann würde ich da schnellstens etwas daran ändern ;-) |
Re: Passwortschutz
Auch wenn ich euch zustimme, dass eine Verschlüsselung der Daten ein falscher Ansatzpunkt ist, habe ich dennoch mal zwei Funktionen ausgegraben, die einen Text zumindest für Anfänger relativ unkenntlich machen. Das ist natürlich kein vergleich zu wirklichen Verschlüsselungsalgorythmen, aber vielleicht kannst du es ja gebrauchen, Tom:
Delphi-Quellcode:
// verschlüsseln
function Encrypt(text: string): string; const adder = 30; // kann beliebig sein, ändert Erscheinungsbild d. verschlüsselt. Textes, // muss gleich dem adder in Decrypt sein var loop, counter, key:Integer; begin counter := 0; key := Length(Text) mod 10 + 5; for loop := 1 to length(text) do begin Inc(counter, key); if (ord(text[loop])+(adder+key+counter)) > 255 then result:=result + (chr(ord(text[loop])+(adder+key+counter)-255)) else result:=result + (chr(ord(text[loop])+(adder+key+counter))); If Counter > 150 then Counter := 0; end; end; // entschlüsseln function Decrypt(text: string):string; const adder = 30; var loop, counter, key: Integer; begin counter := 0; key := Length(Text) mod 10 + 5; for loop := 1 to length(text) do begin Inc(counter, key); if (ord(text[loop])) <= (adder+key+counter) then result:=result + (chr(ord(text[loop])-adder-key-counter+255)) else result:=result + (chr(ord(text[loop])-adder-key-counter)); If Counter > 150 then Counter := 0; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz