Anmelden

View Full Version : Esatzzeichen bei Kennworteingabe



Seiten : 1 [2]

RobertMack
31-03-23, 15:30
Musste einfach nachfragen...

"What would this combination of DSPATR with a user-defined format or edit code look like? Can I have an example?"

Yes, you can use the DSPATR attribute in combination with a user-defined format or an edit code to display a field value with asterisks instead of blanks. Here's an example:

Suppose you have a display file that contains a field named FLD1. You want to display the value of FLD1 with asterisks instead of blanks when using DSPATR(ND).

Using a User-Defined Format:

You can define a user-defined format that converts all characters to asterisks. Here's an example:



A R MYSCREEN
A DSPATR(ND)
A FLD1 10A DSPATR(ND) DSPATR(*UCASE) FORMAT(FLD1AST)
A ALARM
A OVERLAY
A ERASE
A CLEAR
A EXFMT MYSCREEN

A FLD1AST UF A
A OVRPRTF OVRFLD(FLD1AST *PRTDTA)
A N25 EVAL FLD1AST = %SST(FLD1:1:10)
A N30 EVAL FLD1AST = %TRNFMT(*BLANK:'*':FLD1AST)
A N35 ENDIF

In this example, the user-defined format FLD1AST is defined with the UF keyword. It takes the value of the FLD1 field and converts all characters to asterisks. The EVAL operation at line N30 uses the %TRNFMT built-in function to replace all blanks in the FLD1AST value with asterisks.

When you specify DSPATR(ND) for the FLD1 field, the value of the field will be suppressed and replaced with the value generated by the user-defined format, which is the FLD1AST field with asterisks.

Using an Edit Code:

You can define an edit code that replaces all blanks with asterisks. Here's an example:



A R MYSCREEN
A DSPATR(ND)
A FLD1 10A DSPATR(ND) DSPATR(*UCASE) EDTWRD('*' X)
A ALARM
A OVERLAY
A ERASE
A CLEAR
A EXFMT MYSCREEN


In this example, the EDTWRD keyword is used to define an edit code that replaces all blanks with asterisks. When you specify DSPATR(ND) for the FLD1 field and EDTWRD('*' X) for the EDTWRD keyword, the value of the field will be suppressed and replaced with asterisks.

Fuerchau
31-03-23, 15:44
Man lernt halt nie aus, EDTWRD für Nicht-Numerisch, darauf muss man mal kommen.

Allerdings ist das ja revers zu sehen. Ich sehe wieviele Zeichen das Feld groß ist und wieviele Zeichen ich noch habe. Jetzt muss man halt wissen, wie lang das Feld ist um zu errechnen, wieviel ich schon eingegeben habe.
Bei Passwordlevel 2 werden dann erst mal 255 Sternchen angezeigt. Ob das Sinn macht, sei dahingestellt.

Jetzt müsste es noch den umgekehrten Weg geben.
Allerdings wäre mal ein Link zur Doku interessant. Zu finden ist da im DDS-Handbuch und online nichts, bzw:

The EDTWRD keyword is valid for numeric only fields (Y specified in position 35).

RobertMack
31-03-23, 16:10
ChatGPT ist doch jetzt das neue Handbuch ;-)

"Can you explain DSPATR(*UCASE) please"

Sure! DSPATR(*UCASE) is a display attribute in IBM i (AS400) that is used to display a field in uppercase letters. When you specify DSPATR(*UCASE) for a field in a display file, the field value will be displayed in uppercase characters, regardless of how it was entered or stored.

For example, suppose you have a display file that contains a field named FLD1 that can accept alphanumeric characters. If you specify DSPATR(*UCASE) for the FLD1 field, any characters entered in the field will be displayed in uppercase letters.

Here's an example of how to use DSPATR(*UCASE) in a display file:

less



A R MYSCREEN
A DSPSIZ(24 80 *DS3)
A CA03(03 'Exit')
A CF12(12 'Cancel')
A FLD1 10A DSPATR(*UCASE)
A ALARM
A OVERLAY
A ERASE
A CLEAR
A EXFMT MYSCREEN


In this example, the FLD1 field is defined with a length of 10 alphanumeric characters and the DSPATR(*UCASE) display attribute. When this display file is used, any characters entered into the FLD1 field will be displayed in uppercase letters.

Note that DSPATR(*UCASE) does not affect how the field value is stored or processed. It only affects how the field value is displayed on the screen.

holgerscherer
31-03-23, 16:12
Wenn da dann stattdessen "*****" angezeigt würde, sähe das unschön aus.

Also ohne 5250-Änderung incl. aller bekannten Emulationsanpassungen sehe ich da nichts.

Hm, hast Recht, ich sollte im aktuellen Zustand nichts aus dem Kopf schreiben - zu viel durcheinander. Muss noch mal in die Doku schauen, es gab mE Attribute für sowas, die aber keiner nutzt, nicht mal Client Access.
VT100 bietet sich nicht an, da bei 5250 keine Übertragung (und somit Logik) auf der Maschine möglich ist. Man könnte die GIF-Bitmap Codes vergewaltigen, aber - das wird nicht passieren.
Einigen wir uns auf: geht nicht.

holgerscherer
31-03-23, 16:25
Nachtrag - 5250 sendet bei Passwordfeldern das Farbattribut $27, da könnte was gehen.

RobertMack
31-03-23, 16:33
ChatGPT sagt ja, rät jedoch ab...

"Die IBM i (AS400) 5250 sendet bei Passwordfeldern das Farbattribut 27, kann man das in Sternchen übersetzen?"

Ja, das ist möglich! Wenn Sie das Farbattribut 27 mit einem Passwordfeld in einem 5250-Bildschirm verwenden, wird der Text im Feld als schwarze Sternchen angezeigt.

Um das zu erreichen, können Sie DSPATR(PC) für das Passwordfeld in Ihrem Anzeigedatei-Definitionssatz angeben. DSPATR(PC) zeigt den Inhalt des Feldes als Sternchen an, während das Farbattribut 27 die Schriftfarbe des Feldes auf Schwarz setzt.

Hier ist ein Beispiel, das zeigt, wie Sie das Passwordfeld mit DSPATR(PC) und Farbattribut 27 in Ihrem Anzeigedatei-Definitionssatz definieren können:



A R MYSCREEN
A DSPSIZ(24 80 *DS3)
A CA03(03 'Exit')
A CF12(12 'Cancel')
A PSWDFLD 10A DSPATR(PC) DSPATR(27)
A ALARM
A OVERLAY
A ERASE
A CLEAR
A EXFMT MYSCREEN


In diesem Beispiel ist das Passwordfeld "PSWDFLD" definiert und mit DSPATR(PC) und DSPATR(27) spezifiziert. Dadurch wird der Inhalt des Feldes als Sternchen angezeigt und die Schriftfarbe des Feldes auf Schwarz gesetzt.

Bitte beachten Sie, dass das Überschreiben des Farbattributs für Passwordfelder in der Regel eine Sicherheitslücke darstellt, da ein Angreifer möglicherweise versuchen könnte, den tatsächlichen Text im Feld zu sehen, indem er das Farbattribut umgeht. Es ist wichtig, sicherzustellen, dass die Sicherheit Ihres Systems gewährleistet ist, bevor Sie das Farbattribut überschreiben.

holgerscherer
31-03-23, 17:25
ChatGPT sagt ja, rät jedoch ab...

wenn sogar eine KI davon abrät...

Fuerchau
31-03-23, 17:45
Das war bis Windows 98 oder sogar XP noch so, dass man per STRG+C aus dem Kennwortfeld den Klartext herauskopieren konnte.

BenderD
01-04-23, 08:03
Das war bis Windows 98 oder sogar XP noch so, dass man per STRG+C aus dem Kennwortfeld den Klartext herauskopieren konnte.

1.) da sollte man erst mal testen, bei welchen 5250 Clients das heute noch geht!
2.) so what - welcher Benutzer tippt schon sein Kennwort ein und geht dann Kaffee trinken, bevor er dann die Eingabetaste zur Anmeldung drückt.

D*B