Java 控制台初步实现掩盖密码

tips:该方法无法直接掩盖键盘输入的密码,只能实现初步隐藏

线程1:

public class EraserThread extends Thread {
	private boolean active;
	private String mask;
	
	public EraserThread() {
			this('*');
	}
	public EraserThread(char maskChar) {
			active = true;
			mask = "\010" + maskChar;		
	}
	//停止线程时设定为false
	public void setActive(boolean active) {
		this.active = active;
	}
	
	public boolean isActive() {
			return active;
	}
	//重新定义run()方法
	public void run() {
		while(isActive()) {
			System.out.print(mask);
			try {
				//暂停目前的线程50ms
				Thread.currentThread().sleep(50);
				}
			catch(InterruptedException e) {
				e.printStackTrace();
				
			}
			
		}
	}
}

主线程:

import java.util.Scanner;

public class EraserThreadDemo {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
	while(true) {
		System.out.print("输入名称:");
		String name = scanner.next();
		
		System.out.print("输入密码:");
		
		//启动Eraser线程
		EraserThread eraserThread = new  EraserThread('#');
		eraserThread.start();
		String password = scanner.next();
		eraserThread.setActive(false);
	
		if("aaa".equals(name) && "123".equals(password)) {
				System.out.println("欢迎 aaa");
				break;
			}
		else {
				System.out.printf("%s,名称或密码错误,请重新输入! %n",name);
			
		}
	}
	}
}

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值