java - 密码验证

标签 java

我需要我的代码来检查密码,并且密码中的字母之一应为大写。当用户进入时。 请协助。

        int digcheck=0,charcheck=0,symbcheck=0;
        for (int i = 0; i < passwordraw.length(); i++) {
             if (Character.isDigit(passwordraw.charAt(i)))
             {
                digcheck++; 
             }
             else if(Character.isLetter(passwordraw.charAt(i))) 
             {
                charcheck++;
             }
             else
             {
                symbcheck++; 
             }              
        }
        if(digcheck<3)
        {
            digcheck=0;
            throw new OBSSecurityException("INVALID PASSWORD! Must have atleast three(3) digits.");
        }else if(charcheck<5)
        {
            charcheck=0;
            throw new OBSSecurityException("INVALID PASSWORD! Must have atleast five(5) alpha.");
        }
        else if(symbcheck<1)
        {
            symbcheck=0;
            throw new OBSSecurityException("INVALID PASSWORD! Must have atleast one(1) symbol.");
        }

最佳答案

使用正则表达式。

使密码与.*[A-Z]+.*匹配 这将使您的密码至少包含一个大写字符

[编辑] 您还可以使用正则表达式来查找其他限制。

要拥有至少 3 位数字,您可以使用此正则表达式

.*[0-9]{1}.*[0-9]{1}.*[0-9]{1}.*

这将匹配任何内容加 1 位数字、更多任何内容、至少一位数字等等。您可以使用与其他验证类似的正则表达式,如果您需要帮助,请告诉我们

关于java - 密码验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19584915/

相关文章:

java - 有人编写过模糊日期匹配来捕获数据输入错误吗?

Java守护进程最好的跨平台解决方案?

Java:关于断言行为的问题

java - 一次安排任务 - java

java - 如何更改另一个 Activity 中的 ListPreference 值

java - 为什么 Spring MVC 找不到我的 View 路径?

java - 当方法仅在同步块(synchronized block)中调用时是否使方法同步是多余的?在操作系统层面会发生什么?

java - Jackson 确定派生类

java - 为什么我的文件名在“打开项目”对话框中被截断 (NetBeans)

java - 从android中的坐标获取地理位置地址