如何阅读Java中的数字密码?

詹姆士

我试图让用户输入一个四位数的密码,但是我不希望在他们输入时将其打印在屏幕上。我试过这样使用System.console().readPassword();

import java.util.Scanner;
import java.io.*;
import java.util.InputMismatchException;
public class VirtualATM{
    private static String Details;  
    public static void main(String [] args){
        try{
            //Create variables & scanner to be used throughout the program.
            Scanner sc = new Scanner(System.in);
            boolean RegisterOrExist = false;
            int cardNo = 0;
            String DirToWriteFile = System.getProperty("user.dir") + "/VirtualATM.txt"; //Get path to write text file to.
            DirToWriteFile.trim();
            File file = new File(DirToWriteFile);
            // if file doesn't exists, then create it
            if (!file.exists()) {
                file.createNewFile();
            }
            //Create writer to write to files.
             FileWriter fw = new FileWriter(file.getAbsoluteFile());
             BufferedWriter bw = new BufferedWriter(fw);
            System.out.println("Enter card number, or type register to register a new card.");
            String register = sc.nextLine();
            if(register.equalsIgnoreCase("register")){
                RegisterOrExist = false;
                RegisterNewCard();
            } else {
            RegisterOrExist = true;
            cardNo = Integer.valueOf(register);
            }
            bw.write(Details);
            //Close the writer.
            bw.close();
        } catch(IOException e) {
            e.printStackTrace();
        }
    }
    /*** Method for registering a new card **/
    public static void RegisterNewCard(){
        Scanner sc = new Scanner(System.in);
        System.out.print("Name: ");
        String name = sc.nextLine();
        int MaxVal = Integer.MAX_VALUE;
        int CardNo =  new java.util.Random().nextInt(MaxVal) + 1;
        int balance = new java.util.Random().nextInt(10000) + 1;
        boolean OverDraft = false;
        int OverDraftLimit = 0;
        if(OverDraft = true){
            OverDraftLimit = 250;
        }
        char [] PIN = {};
        System.out.println("Create a FOUR digit pin: ");
        try{
            PIN = System.console().readPassword();
        }catch(InputMismatchException e){
            e.printStackTrace();
        }
        int P1 = (int) PIN[0];
        int P2 = (int) PIN[1];
        int P3 = (int) PIN[2];
        int P4 = (int) PIN[3];
        int [] PinNo = {P1, P2, P3, P4};
        Details = "Name:   " + name + "   CardNo:   " + CardNo + "   Current Balance:   " + balance + "   overdraft?   " + OverDraft + "   OverDraftLimit:   " + OverDraftLimit + "   pin:   " + PinNo;
    }
}

然后,我尝试使用将针脚写入int [] pinNo = {P1, P2, P3, P4}文本文件BufferedWriter当我将别针输入为时,我在文本文件中得到以下文本2566[I@42a57993是否存在另一种方式来读取密码,而无需在用户键入时在屏幕上打印密码?

SparkOn

好吧,这条线

bw.write(Details);

details在文件中写入

Details = "..otherdetails..."+"pin:   " + PinNo;

显示您正在写入数组的哈希。所以只需替换"pin: " + PinNo为数组的实际元素

您可以按照罗德所说的简单尝试一下

Details = "..otherdetails..."+"pin:   " + java.util.Arrays.toString(PinNo)

提示-使用此密码可让您更安全地尝试密码

char[] PIN = System.console.readPassword();  
Arrays.fill(password, ' ');

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过阅读注册表在Inno Setup中验证用户名和密码

来自分类Dev

Java NullPointerException在阅读中

来自分类Dev

如何在python中创建4位数字的密码?

来自分类Dev

如何在Java中创建密码

来自分类Dev

阅读时如何在Java中同时分隔“ =”和“ ==”

来自分类Dev

我如何阅读 java 中的镶木地板词典

来自分类Dev

如何在MySQL中使数字“易于阅读”

来自分类Dev

使Lua中的数字更容易阅读

来自分类Dev

使Lua中的数字更容易阅读

来自分类Dev

凯撒C中数字的密码

来自分类Dev

如果我只想阅读数字,如何忽略文本文件中的单词

来自分类Dev

如果我只想阅读数字,如何忽略文本文件中的单词

来自分类Dev

如何阅读数字;如何将这些数字存储在变量中;以及如何在标签中显示这些数字;从Qt的行编辑?

来自分类Dev

如何阅读Java的API文档?

来自分类Dev

如何在 Java 中的 Polybius 密码中获取单词的坐标?

来自分类Dev

Java中的Caesar密码

来自分类Dev

在Java中更改密码

来自分类Dev

如何在Java中处理极小的数字

来自分类Dev

Java中的数字递归如何工作?

来自分类Dev

如何在Java中处理极小的数字

来自分类Dev

Java 中的枚举:如何使用数字

来自分类Dev

密码创建数字长。如何创建整数?

来自分类Dev

如何在Perl中为凯撒密码分配字母和数字?

来自分类Dev

PowerShell-密码生成器-如何始终在字符串中包含数字?

来自分类Dev

如何在 Visual Basic 中检查密码是否至少包含 1 个数字?

来自分类Dev

Validator.js - 如何在 NodeJS 中验证字母数字密码?

来自分类Dev

如何使用Bouncy Castle编辑Java中的密码套件列表

来自分类Dev

如何在JAVA中编写仿射密码解密逻辑?

来自分类Dev

如何在Java源代码中隐藏硬编码的密码

Related 相关文章

  1. 1

    如何通过阅读注册表在Inno Setup中验证用户名和密码

  2. 2

    Java NullPointerException在阅读中

  3. 3

    如何在python中创建4位数字的密码?

  4. 4

    如何在Java中创建密码

  5. 5

    阅读时如何在Java中同时分隔“ =”和“ ==”

  6. 6

    我如何阅读 java 中的镶木地板词典

  7. 7

    如何在MySQL中使数字“易于阅读”

  8. 8

    使Lua中的数字更容易阅读

  9. 9

    使Lua中的数字更容易阅读

  10. 10

    凯撒C中数字的密码

  11. 11

    如果我只想阅读数字,如何忽略文本文件中的单词

  12. 12

    如果我只想阅读数字,如何忽略文本文件中的单词

  13. 13

    如何阅读数字;如何将这些数字存储在变量中;以及如何在标签中显示这些数字;从Qt的行编辑?

  14. 14

    如何阅读Java的API文档?

  15. 15

    如何在 Java 中的 Polybius 密码中获取单词的坐标?

  16. 16

    Java中的Caesar密码

  17. 17

    在Java中更改密码

  18. 18

    如何在Java中处理极小的数字

  19. 19

    Java中的数字递归如何工作?

  20. 20

    如何在Java中处理极小的数字

  21. 21

    Java 中的枚举:如何使用数字

  22. 22

    密码创建数字长。如何创建整数?

  23. 23

    如何在Perl中为凯撒密码分配字母和数字?

  24. 24

    PowerShell-密码生成器-如何始终在字符串中包含数字?

  25. 25

    如何在 Visual Basic 中检查密码是否至少包含 1 个数字?

  26. 26

    Validator.js - 如何在 NodeJS 中验证字母数字密码?

  27. 27

    如何使用Bouncy Castle编辑Java中的密码套件列表

  28. 28

    如何在JAVA中编写仿射密码解密逻辑?

  29. 29

    如何在Java源代码中隐藏硬编码的密码

热门标签

归档