一个自己写的校验四位密码的小逻辑,大家猜猜哪四个数字能过去?

最近好久没写博客了,偷懒一时爽,一直偷懒一直爽,嘿嘿嘿~

闲来无事编个小程序,大家猜猜数字(肯定不是1000,我只是举个例子),代码如下:


    public static void main(String[] args) {
        String password="1000";
        System.out.println(checkPassword(password));
    }

    private static boolean checkPassword(String password) {
        if(password==null|| "".equals(password)){
            System.out.println("password is empty");
            return false;
        }
        if(password.length()!=4){
            System.out.println("password length is error,must 4");
            return false;
        }
        try{
            Integer.parseInt(password);
        }catch (NumberFormatException e){
            System.out.println("password is not number");
            e.printStackTrace();
            return false;
        }
        int p1=Integer.parseInt(password.substring(0,1));
        int p2=Integer.parseInt(password.substring(1,2));
        int p3=Integer.parseInt(password.substring(2,3));
        int p4=Integer.parseInt(password.substring(3));
        boolean a = p2 == (p1 ^ p2 & p3 ^ p4);
        if(!a){
            System.out.println("a.And xor operation error");
           return false;
        }
        boolean b = (p1 << p2 ^ p4 << p3) == (p2 << p1 | p4 << p3);
        if(!b){
            System.out.println("b.Shift operation error");
            return false;
        }
        boolean c = (p1 == p2) || (p2 == p3) || p3 != (p1 + p2) || (p2 != (p1 + p4)) || p3 != (p1 | p2) || p3 != (p1 | p3) || p3 != (p2 | p3);
        if(c){
            System.out.println("c.Base operation error");
        }
        return !c;
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值