密码验证合格程序(算法)

简介: 密码验证合格程序(算法)

/**  

* 021Abc9Abc1  

* 1.长度超过8位  

* 2.包括大小写字母.数字.其它符号,以上四种至少三种  

* 3.不能有长度大于2的包含公共元素的子串重复 (注:其他符号不含空格或换行)

*/


public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        validation(str);
    }
    private static void validation(String str) {
        //  1.长度超过8位
        if (str.length() <= 8) {
            System.out.println("不合格");
            return;
        }
        // 2.包括大小写字母.数字.其它符号,以上四种至少三种
        int little = 0;
        int max = 0;
        int num = 0;
        int other = 0;
        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i) <= 'z' && str.charAt(i) >= 'a') {
                little = 1;
            } else if (str.charAt(i) <= 'Z' && str.charAt(i) >= 'A') {
                max = 1;
            } else if (str.charAt(i) <= '9' && str.charAt(i) >= '0') {
                num = 1;
            } else {
                other = 1;
            }
        }
        if (little + max + num + other < 3) {
            System.out.println("不合格");
            return;
        }
        // 3.不能有长度大于2的包含公共元素的子串重复 (注:其他符号不含空格或换行)
        boolean flag = getTwoLength(str, 0, 2);
        if (!flag) {
            System.out.println("不合格");
        } else {
            System.out.println("合格");
        }
    }
    private static boolean getTwoLength(String str, int s, int e) {
        if(e > str.length()){
            return true;
        }
        if (!str.substring(e).contains(str.substring(s, e))) {
            s = s + 1;
            e = e + 1;
            return getTwoLength(str, s, e);
        } else {
            return false;
        }
    }
相关文章
|
18天前
|
存储 安全 算法
|
4月前
|
算法 安全 Unix
[RFC6238] TOTP: 基于时间的一次性密码生成算法
[RFC6238] TOTP: 基于时间的一次性密码生成算法
69 0
|
2月前
|
机器学习/深度学习 数据采集 算法
解码癌症预测的密码:可解释性机器学习算法SHAP揭示XGBoost模型的预测机制
解码癌症预测的密码:可解释性机器学习算法SHAP揭示XGBoost模型的预测机制
161 0
|
7月前
|
算法 安全 数据安全/隐私保护
密码学基础-对称密码算法(Symmetric-key Algorithm)
密码学基础-对称密码算法(Symmetric-key Algorithm)
|
8月前
|
算法
第2章 算法——程序的灵魂
第2章 算法——程序的灵魂
39 0
|
6天前
|
算法 SoC
基于多目标粒子群算法的配电网储能选址定容(含MATLAB程序)
基于多目标粒子群算法的配电网储能选址定容(含MATLAB程序)
|
18天前
|
存储 算法 安全
|
2月前
|
存储 算法 算法框架/工具
基于HSV色度空间的图像深度信息提取算法FPGA实现,包含testbench和MATLAB辅助验证程序
该文档介绍了在一个FPGA项目中使用HSV色彩模型提取图像深度信息的过程。通过将RGB图像转换为HSV,然后利用明度与深度的非线性映射估计深度。软件版本为Vivado 2019.2和MATLAB 2022a。算法在MATLAB中进行了对比测试,并在FPGA上实现了优化,包括流水线并行处理和查找表技术。提供的Verilog代码段展示了RGB到灰度的转换。实验结果和核心程序的图片未显示。
|
4月前
|
算法
写一段圆弧插补算法程序
写一段圆弧插补算法程序
45 0
|
4月前
|
存储 算法 搜索推荐
Java常见算法-算法与程序、公式、数据结构的区别
算法、程序、公式和数据结构是计算机科学中的基本概念,它们之间有着密切的联系,但各自有着独特的含义和作用。