集册 Java实例教程 从控制台读取密码

从控制台读取密码

欢马劈雪     最近更新时间:2020-01-02 10:19:05

469
从控制台读取密码
/*
时 代 J a v a - N o w J a v a . c o m
*/

import java.io.Console;

import java.util.Arrays;

import java.io.IOException;


public class Password {


    public static void main(String args[]) throws IOException {


        Console c = System.console();

        if (c == null) {

            System.err.println("No console.");

            System.exit(1);

        }


        String login = c.readLine("Enter your login: ");

        char[] oldPassword = c.readPassword("Enter your old password: ");


        if (verify(login, oldPassword)) {

            boolean noMatch;
            /*
            NowJava.com 提供
            */

            do {

                char[] newPassword1 = c

                        .readPassword("Enter your new password: ");

                char[] newPassword2 = c

                        .readPassword("Enter new password again: ");

                noMatch = !Arrays.equals(newPassword1, newPassword2);

                if (noMatch) {

                    c.format("Passwords don't match. Try again.%n");

                } else {

                    change(login, newPassword1);

                    c.format("Password for %s changed.%n", login);

                }

                Arrays.fill(newPassword1, ' ');

                Arrays.fill(newPassword2, ' ');

            } while (noMatch);

        }


        Arrays.fill(oldPassword, ' ');

    }


    // Dummy change method.

    static boolean verify(String login, char[] password) {

        // This method always returns

        // true in this example.

        // Modify this method to verify

        // password according to your rules.

        return true;

    }


    // Dummy change method.

    static void change(String login, char[] password) {

        // Modify this method to change

        // password according to your rules.

    }

}


展开阅读全文