Zugangsdaten "verstecken"
Moderator: Moderatoren
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Zugangsdaten "verstecken"
Hallo,
ich muß im Code vertrauliche Daten einbauen. Wenn ich die aber als Variable da reinschreibe, dann kann man mit dem Editor die Datei auslesen und sieht den String. Wie bekomme ich die am Besten so eingebaut, daß das nicht mehr (so einfach) möglich ist. Und das auch noch ohne zusätzliche Tools wie die Xbase-Tools?
Jan
ich muß im Code vertrauliche Daten einbauen. Wenn ich die aber als Variable da reinschreibe, dann kann man mit dem Editor die Datei auslesen und sieht den String. Wie bekomme ich die am Besten so eingebaut, daß das nicht mehr (so einfach) möglich ist. Und das auch noch ohne zusätzliche Tools wie die Xbase-Tools?
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2470
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Zugangsdaten "verstecken"
Jan,
ich dachte Du machst das so ?
http://www.xbaseforum.de/viewtopic.php? ... 300#p71705
den verschlüsselten Text in Quellcode. Variabel kann der ja nicht sein, sonst würde er nicht im Quellcode sethen.
ich dachte Du machst das so ?
http://www.xbaseforum.de/viewtopic.php? ... 300#p71705
den verschlüsselten Text in Quellcode. Variabel kann der ja nicht sein, sonst würde er nicht im Quellcode sethen.
Gruß
Klaus
Klaus
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Zugangsdaten "verstecken"
Hallo Klaus,
das ist etwas ganz anderes. Da checke ich ab, ob der Nutzer seine Lizenzdatei geändert hat gegen einen festen Hash-Wert.
Hier muß ich aber eine Authentifizierung über das Netz schicken, um mein Programm gegenüber enier fremden Datenbank zu authentisieren. Schicken muß ich also den String in Klartext (allerdings über eine https-Verbindung). Den Zugangscode bekomme ich gestellt und muß den genau so rüber schicken. Also muß ich den auch irgendwie in mein Programm reinbauen. So, das man das in der fertigen dll nicht enifach auslesen kann, ich das aber im Klartext wegschicken kann.
Jan
das ist etwas ganz anderes. Da checke ich ab, ob der Nutzer seine Lizenzdatei geändert hat gegen einen festen Hash-Wert.
Hier muß ich aber eine Authentifizierung über das Netz schicken, um mein Programm gegenüber enier fremden Datenbank zu authentisieren. Schicken muß ich also den String in Klartext (allerdings über eine https-Verbindung). Den Zugangscode bekomme ich gestellt und muß den genau so rüber schicken. Also muß ich den auch irgendwie in mein Programm reinbauen. So, das man das in der fertigen dll nicht enifach auslesen kann, ich das aber im Klartext wegschicken kann.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Zugangsdaten "verstecken"
In den XbToolsIII gibt es StrToHex() und HexToStr(), das kann man aber auch selbst bauen !
Die Idee dahinter:
"Abc" => ASC("A") => 65 ... mögliche Werte von 0 bis 255
Nun kann man etweder "065" speichern (3 Byte pro Byte) was mit einer einfachen Schleife zu erstellen ist, oder aber man speichert den HEX Wert (2 Byte je Byte) ich meine das wäre "41"
Für deine Zugangsdaten ist es sicher kein Problem die längere Variante zu wählen.
Wichtig ist, dass die Speicherung im Programm entweder direkt als "versteckter String" oder in LOCAL oder STATIC erfolgt.
Sonst kann man anhand des Variablennamens auf den Inhalt schließen.
Du brauchst also nur eine Verschlüsselungsfunktion, die dir bei dir zu Hause den Wert erzeugt und den schreibst du in den Quellcode.
Im eigentlichen Programm dann das Gegenteil zum Entschlüsseln.
// Verschleiern, CRYPT ware zu viel versprochen
// Entschlüsseln
Ich habe das jetzt frei geschrieben, es könnten also Tippfehler drinn sein
Falls du die HEX Lösung möchtest, ich meine ich hätte solche Funktionen auch veröffentlicht, notfalls kann ich die aber auch suchen.
Die Idee dahinter:
"Abc" => ASC("A") => 65 ... mögliche Werte von 0 bis 255
Nun kann man etweder "065" speichern (3 Byte pro Byte) was mit einer einfachen Schleife zu erstellen ist, oder aber man speichert den HEX Wert (2 Byte je Byte) ich meine das wäre "41"
Für deine Zugangsdaten ist es sicher kein Problem die längere Variante zu wählen.
Wichtig ist, dass die Speicherung im Programm entweder direkt als "versteckter String" oder in LOCAL oder STATIC erfolgt.
Sonst kann man anhand des Variablennamens auf den Inhalt schließen.
Du brauchst also nur eine Verschlüsselungsfunktion, die dir bei dir zu Hause den Wert erzeugt und den schreibst du in den Quellcode.
Im eigentlichen Programm dann das Gegenteil zum Entschlüsseln.
// Verschleiern, CRYPT ware zu viel versprochen
Code: Alles auswählen
cStringOrg := "ABC"
nLenString := cStringOrg
cStringHide := ""
for i := 1 to nLenString
nByte := val(cString[i])
cStringHide += alltrim(str(nByte))
next
? cStringHide // sollte lauten, wenn du das im Quellcode als String schreibst, sollte das keiner mehr in der EXE finden solange er nicht genau weiß was er sucht.
Code: Alles auswählen
cStringOrg := ""
cStringHide := "065066067"
nLenString := cStringHide
for i := 1 to nLenString STEP 3
nByte := val(substr(cString,i,3))
cStringHide += chr(nByte)
next
? cStringHide // sollte "065066067" lauten, wenn du das im Quellcode als String schreibst, sollte das keiner mehr in der EXE finden solange er nicht genau weiß was er sucht.
Falls du die HEX Lösung möchtest, ich meine ich hätte solche Funktionen auch veröffentlicht, notfalls kann ich die aber auch suchen.
Gruß
Hubert
Hubert
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Zugangsdaten "verstecken"
Hallo Hubert,
eine interessante Idee. Das werd ich mir mal näher ansehen. Ich muß ja den String nur 1x verschlüsseln und das wars dann, der ändert sich nie wieder, weil der genau meine Lizenz angibt.
Jan
eine interessante Idee. Das werd ich mir mal näher ansehen. Ich muß ja den String nur 1x verschlüsseln und das wars dann, der ändert sich nie wieder, weil der genau meine Lizenz angibt.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Re: Zugangsdaten "verstecken"
Hallo Jan
habe das schon vor langer Zeit auch so gemacht wie Hubert vorschlägt:
Eigene Verschlüsselungs-Funktionen mit ASCII und/oder HEX. Wenn man das nicht mathematisch macht sondern per String vergrößert sich die String-Länge um das 2- bis 3-fache.
habe das schon vor langer Zeit auch so gemacht wie Hubert vorschlägt:
Eigene Verschlüsselungs-Funktionen mit ASCII und/oder HEX. Wenn man das nicht mathematisch macht sondern per String vergrößert sich die String-Länge um das 2- bis 3-fache.
- Bertram Hansen
- Foren-Moderator
- Beiträge: 1015
- Registriert: Di, 27. Sep 2005 8:55
- Wohnort: 51379 Leverkusen
- Hat sich bedankt: 28 Mal
- Danksagung erhalten: 20 Mal
- Kontaktdaten:
Re: Zugangsdaten "verstecken"
Hallo Jan,
was hälst Du hier von:
was hälst Du hier von:
Code: Alles auswählen
// "!" + "D" + "E" + "M" + "O" + "!"
LOCAL cText := CHR(033)+CHR(068)+CHR(069)+CHR(077)+CHR(079)+CHR(033)
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.
Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Zugangsdaten "verstecken"
Nun,
wenn man noch ein anderes Zahlensystem auswählt (z.B. nicht dezimal, sondern als Basis die 36), dann würde das als String so aussehen:
"0X1M1N25270X"
Viele Grüße,
Martin
wenn man noch ein anderes Zahlensystem auswählt (z.B. nicht dezimal, sondern als Basis die 36), dann würde das als String so aussehen:
"0X1M1N25270X"
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- nightcrawler
- 1000 working lines a day
- Beiträge: 651
- Registriert: Di, 24. Apr 2012 16:33
- Wohnort: 72184 Weitingen
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 96 Mal
- Kontaktdaten:
Re: Zugangsdaten "verstecken"
Im Delphi-Forum hat mal einer geschrieben, das einfachste wäre, die Daten einfach im Klartext in die Readme reinzuschreiben. Da schaut eh keiner rein
- azzo
- Rekursionen-Architekt
- Beiträge: 483
- Registriert: So, 28. Mär 2010 19:21
- Danksagung erhalten: 11 Mal
Re: Zugangsdaten "verstecken"
Hallo,
ich verwende diese einfache Funktion.
mfg
Otto
ich verwende diese einfache Funktion.
mfg
Otto
Code: Alles auswählen
function pw()
local cPassword1 := "m"
local cPassword3 := "P"
local cPassword2 := "y"
local cFiller := "xyzPW"
local cPassword5 := "0"
local cPassword6 := "0"
local cPassword7 := "7"
local cPassword4 := "W"
*----------------------------------------------------------
return ( cPassword1 + cPassword2 + cPassword3 + cPassword4 + cPassword5 + cPassword6 + cPassword7 )
//----------------------------------------------------------------------------//
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Zugangsdaten "verstecken"
Tja,
warum macht man das nicht so, wie es i.A. gang und gäbe ist heutzutage?
Man speichert nicht mehr das Passwort, sondern den entsprechenden Hash (also das Ergebnis, das man beim Verschlüsseln erhält). Bei Eingabe des Passwortes wird dieses verschlüsselt und man vergleicht die Hashes - gleiche Hashes, gleiches Passwort.
Aus den Hashes ist das Passwort nicht ermittelbar (wenn eine geeignete Verschlüsselung benutzt wird) - und ohne das Passwort und der genutzten Verschlüsselungsroutine ist der Hash nicht erzeugbar
Viele Grüße,
Martin
warum macht man das nicht so, wie es i.A. gang und gäbe ist heutzutage?
Man speichert nicht mehr das Passwort, sondern den entsprechenden Hash (also das Ergebnis, das man beim Verschlüsseln erhält). Bei Eingabe des Passwortes wird dieses verschlüsselt und man vergleicht die Hashes - gleiche Hashes, gleiches Passwort.
Aus den Hashes ist das Passwort nicht ermittelbar (wenn eine geeignete Verschlüsselung benutzt wird) - und ohne das Passwort und der genutzten Verschlüsselungsroutine ist der Hash nicht erzeugbar
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Zugangsdaten "verstecken"
weiter oben hat JAN geschrieben, dass er die Zugangsdaten zu einer externen Resource im Programm versteckt speichern will, da kann er keinen HASH gebrauchen.Martin Altmann hat geschrieben:warum macht man das nicht so, wie es i.A. gang und gäbe ist heutzutage?
Gruß
Hubert
Hubert
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Zugangsdaten "verstecken"
Ahh - OK. Schon länger her, dass ich das gelesen hatte
Habe mich jetzt nur auf die ganzen Antworten der Anderen konzentriert gehabt...
Viele Grüße,
Martin
Habe mich jetzt nur auf die ganzen Antworten der Anderen konzentriert gehabt...
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Zugangsdaten "verstecken"
Ich verwende für so etwas fünf, sechs unterschiedliche Funktionen, deren Namen nichts über ihre Verwendung aussagen, und die je nach Parameter unterschiedliche Bestandteile des Codes zurückliefern. Das ist kaum zu knacken.
Herzlich,
Tom
Tom