Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Teil eines Fensters verpixeln (https://www.delphipraxis.net/196297-teil-eines-fensters-verpixeln.html)

Alallart 9. Mai 2018 11:28

AW: Teil eines Fensters verpixeln
 
Zitat:

Zitat von himitsu (Beitrag 1401721)
Delphi-Quellcode:
Edit.PasswortChar := '*';
aber das löst auch nicht das prinzipielle Problem.

Ich verstehe nicht was du mit "prinzipielle Probleme" genau meinst. Ist zwar schon lange her wo ich das richtig überprüft habe, aber wenn man versucht ein Eidtfeld auszulesen, das mit PasswortChar "verpixelt" ist, bekommt man auch nur Sternchen raus. Im Editfeld selbst sind also nur Sternchen, kein verdeckter Text.

Klar kann man irgendwelche Datenströme mit irgendwelchen Hackerprogrammen auslesen, ab er um das geht es hier wohl nicht. PasswortChar sorgt dafür, dass Edit-Felder nur Sternchen anzeigen.

Der schöne Günther 9. Mai 2018 11:43

AW: Teil eines Fensters verpixeln
 
Zitat:

Zitat von Alallart (Beitrag 1401723)
aber wenn man versucht ein Eidtfeld auszulesen, das mit PasswortChar "verpixelt" ist, bekommt man auch nur Sternchen raus.


Leider nicht.

https://imgur.com/a/HkzbRHS

himitsu 9. Mai 2018 11:54

AW: Teil eines Fensters verpixeln
 
Das Control hat als Windows-Text immernoch den richtigen Text.
Nur bei der Anzeige werden während des Malens die Sterne/Punkte verwendet.

Und nur ein einzelnes Bit in dem Control muß geändert werden (MSDN-Library durchsuchenES_PASSWORD), damit man im Edit wieder den Text sieht, was WinSpy&Co. oder MSDN-Library durchsuchenSetWindowLong auch problemlos erledigen können.

Es ist praktisch das Selbe, was der TE machen will, aber ob nun er oder Windows die Ausgabe "anders" malt, aber intern die Daten problemlos zugreifbar sind, das macht keinen großen Unterschied.
Du kannst gern im Paint-Ereignis der Komponente deine Pixel malen, aber es bleibt das selbe Problem bestehen.


Darum bieten viele DBMS auch direkt an, dass man beim Auslesen solcher Felder anhand der Benutzerberechtigung einzelne Felder/Spalten schon DB-seitig "sperren" kann, damit diese Daten garnicht erst raus kommen können.

p80286 9. Mai 2018 12:29

AW: Teil eines Fensters verpixeln
 
Zitat:

Zitat von Alallart (Beitrag 1401723)
Ich verstehe nicht was du mit "prinzipielle Probleme" genau meinst.

Zitat:

Zitat von Alfonso (Beitrag 1401695)
Hallo,

aus Datenschutzgründen möchte ich für Benutzer mit eingeschränkten Rechten die Ausgabe von Read Only TEdit Felder verpixeln.

Das prinzipielle Problem ist wohl der Datenschutz. Dem versucht der TE mit Hilfe einer "Verpixelung" bei zu kommen.
Da ist es aber wesentlich nachhaltiger Daten, die zu schützen sind, gar nicht erst zu publizieren, als sie zu verfremden.

Gruß
K-H

himitsu 9. Mai 2018 12:45

AW: Teil eines Fensters verpixeln
 
Stell dir "Verpixeln" mal etwas anders vor.

* ein nicht ganz deckend malender Stift ... kannst oft drüber malen, aber sehen tut man es dennoch
> würde man aber den Text garnicht erst hinschreiben und nur als "hier wäre was" die Pixel malen, dann kann man dennoch nichts sehen

* oder wie in schlechten TV-Pseudorealitypolizeidokus, wo nur die Augen verpixelt werden ... man sieht nichts, aber wer dich kenn, wird dich dennoch erkennen, was blöd ist, wenn das die Bösen sind
> ein falsches "Dummy"-Gesicht mit Pixeln über den Augen ... nja, da wird maximal der Falsche erschossen, aber du bist sicher

Bernhard Geyer 10. Mai 2018 11:50

AW: Teil eines Fensters verpixeln
 
Zitat:

Zitat von p80286 (Beitrag 1401713)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1401711)
Da es bisher kein "Verpixelungslöung" gepostet wurde, muss der TE damit Leben, das entweder sein Ansatz hinterfragt wird oder er gar keine Antworten bekommt.

Ich denke '....' war schon ein "Verpixelungsansatz". Man könnte auch den Inhalt "Xoren", oder man verwendet als Font Wingdings oder Webdings.

Hört sich nach der Lösung an indem man Dokumente als PDF mit geschwärzen Inhalt rausgegeben hat. Dumm nur das dann hinter der Schwärzung der Orginal-Text noch im PDF vorhanden war.
Das gleich wäre mit Wingdings und Co. Im Control ist es nicht lesbar. Solange es aber nur "ReadOnly" gesetzt ist kann man es rauskopieren und dann mit andere Schriftart anzeigen.

Bernhard Geyer 10. Mai 2018 12:02

AW: Teil eines Fensters verpixeln
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1401724)
Zitat:

Zitat von Alallart (Beitrag 1401723)
aber wenn man versucht ein Eidtfeld auszulesen, das mit PasswortChar "verpixelt" ist, bekommt man auch nur Sternchen raus.


Leider nicht.

https://imgur.com/a/HkzbRHS

Autsch :wall:
Hat hier Emba/Delphi gepfuscht oder ist das eine Mangel des Windows-Controls.
Ein Jira-Ticket finde ich nicht dazu. Darf ich dein Beispiel verlinken wenn ich ein Jira-Ticket anlege?

Glücklicherweise haben wir Edits von 3th-Partykomponenten. Diese Fallen auf diesen Trick nicht herein.:wink:

Der schöne Günther 10. Mai 2018 12:30

AW: Teil eines Fensters verpixeln
 
Klar, gerne. Aber ich denke es ist eher
Zitat:

Zitat von Bernhard Geyer (Beitrag 1401764)
ist das eine Mangel des Windows-Controls.

.


Denn in der WinForms-Doku zu PasswordChar steht:
Zitat:

[…]. Because the text entered is not encrypted in any way, you should treat it as you would any other confidential data. Even though it does not appear as such, the password is still being treated as a plain-text string (unless you have implemented some additional security measure).
Quelle: https://docs.microsoft.com/en-us/dot...extbox-control

Die Embarcadero-Doku sagt das ja auch, wenn auch nicht so deutlich:
Zitat:

Delphi-Quellcode:
PasswordChar
affects the appearance of the edit control only. The value of the Text property reflects the actual characters that are typed.
Quelle: http://docwiki.embarcadero.com/Libra...t.PasswordChar

KodeZwerg 10. Mai 2018 19:20

AW: Teil eines Fensters verpixeln
 
Hi, drei alternativen um beim verpixeln zu bleiben:

Variante a) leg dir eine Komponente über die die Du verstecken willst, diese muss ein Canvas bieten, damit kannst du dann was auch immer rübermalen, das geht in Richtung WinApi/Non-VCL

Variante b) leg dir eine Image Komponente rüber und lad irgendein Bild, das geht in Richtung VCL pur.

Für beide Varianten könnte man das was verpixelt werden soll auch vorher "knipsen" und dann bearbeiten und dann ins Canvas bzw Image rein.

Variante c) Noch eine Sache wäre der Glass-Effekt, der bietet eigentlich das was du vorhast an, per Dichte stellst du die Lesbarkeit ein.

himitsu 10. Mai 2018 20:10

AW: Teil eines Fensters verpixeln
 
b) Ein Image kann man niemals über eine Komponente legen, da es sich nur auf dessen Parent malt und der ist immer hinten.


Und ganz im Ernst, nur weil das Edit durch eine andere Komponente überdeckt wird, heißt dass noch lange nicht, dass man nicht in wenigen Millisekunden an das Edit im Hintergrund ran kommt, in dem immernoch alles direkt lesbar drin ist.


Sobald wie auch immer das "geheime" in der GUI landet, kann es auch ausgelesen werden.
Wenn es nur im RAM liegt, dann ist es auch auslesbar, aber diesen aufwändigeren Fall ignoriere ich jetzt erstmal.
Fazit: Es darf garnicht erst geladen werden, dann kommt auch niemand da ran.

@Bernhard Geyer: Sorry, aber das ist keinenfalls ein Problem von Delphi.
Es liegt in der Natur solcher Passwort-Edit-Komponenten und das auch in anderen Betriebssystemen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:19 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz