Tuco: Campo de entrada tipo contraseña en Matlab

Publicado el 20 abril 2022 por Daniel Rodríguez @analyticslane

A la hora de crear un formulario en Matlab es posible que necesitemos incluir un campo para la entrada de contraseñas. En los cuales los caracteres que se introducen deberían permanecer ocultos. Componente que actualmente no existe. Por ejemplo, para el caso de que tengamos que acceder a una base de datos y esta requiere una contraseña. Para conseguir esto existe un truco sencillo que funciona solamente en Windows, simplemente se crea un componente Edit Text y se cambia la fuente por defecto por Symbol. Debido a que esta fuente no se puede mostrar, lo que se consigue es un campo de entrada tipo contraseña en Matlab en el que los caracteres se reemplazan por cuadrados.

Ejemplo de campo de entrada tipo contraseña en Matlab

La forma más sencilla para crear este componente es escribir la siguiente linea en Matlab.

h = uicontrol('Style', 'Edit', 'FontName', 'Symbol');

Con la que se crea un control de tipo Edit en una figura (en el caso de que exista una activa se creará en esta, sino se creará una nueva), obteniéndose como resultado en la variable h el handle del componente. En la siguiente captura de pantalla se muestra como se ve este componente al agregar texto.

Evaluación de un campo de contraseña en Matlab

Tal como se puede apreciar en lugar de los caracteres introducidos por el usuario lo que se muestra son cuadrados, por lo alguien que esté mirando la pantalla no podrá saber cual es el texto introducido. A pesar de esto, sí que es posible recuperar el valor introducido como es habitual en este componente accediendo a la propiedad String, lo ue se muestra a continuación.

h = 

  UIControl (Secret) with properties:

              Style: 'edit'
             String: 'Secret'
    BackgroundColor: [0.9400 0.9400 0.9400]
           Callback: ''
              Value: 0
           Position: [20 20 60 20]
              Units: 'pixels'

Desafortunadamente, este truco solamente funciona cuando se está trabajando en Windows, ya que tanto en Mac como en Linux se muestra la fuente y, aunque no pueda leer correctamente, existe una correspondencia entre cada símbolo mostrado y la letra introducida. Por lo que, en estos sistemas, sí que sería posible obtener la contraseña.

Conclusiones

Este es un truco sencillo que nos puede sacar de un apuro cuando necesitamos incluir un campo de entrada tipo contraseña en Matlab. Aunque desafortunadamente solamente funciona en Windows.

Existen otras formas de conseguir esto, cómo puede ser el uso de componentes Java, aunque es algo que se eliminará en las futuras versiones de Matlab.

Imagen de Theodor Moise en Pixabay