Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Java] Nascondere input da tastiera

    in avvio di programma metto le credenziali tramite input utente:
    codice:
    public class Main {
    
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("USER:");
            String user = scanner.nextLine();
            System.out.println("HOST:");
            String host = scanner.nextLine();
            System.out.println("PORT (default 22):");
            String port = scanner.nextLine();
            if ("".equals(port)) {
                port = "22";
            }
            System.out.println("PASSWORD:");
            String pwd = scanner.nextLine();
    ............
        }
    }
    il problema è che la password è visibile da tutti mentre viene scritta.
    è possibile emulare il comportamento di UNIX che nn mostra nulla o metterci i classici asterischi?
    in giro ho cercato ma i due esempi provati nn hanno funzionato.
    voi avete qualche suggerimento?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java] Nascondere input da tastiera

    Originariamente inviato da fermat
    è possibile emulare il comportamento di UNIX che nn mostra nulla o metterci i classici asterischi?
    Da Java 6 c'è la classe java.io.Console che ha readPassword.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    grazie per la segnalazione:
    codice:
            Console console = System.console();
            System.out.println("USER:");
            String user = console.readLine();
            System.out.println("HOST:");
            String host = console.readLine();
            System.out.println("PORT (default 22):");
            String port = console.readLine();
            if ("".equals(port)) {
                port = "22";
            }
            System.out.println("PASSWORD:");
            char[] cript = console.readPassword();
            String pwd = new String(cript);

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.