模拟用户登录效果

标题

package sun.rain.amazing;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

import org.junit.Test;


/**
 * 模拟用户登录
 * @author sunRainAmazing
 * 
 */
public class StringLogin {

    public static User[] userArray;
    public static List<User> userList = new ArrayList<User>();

    //初始化数据
    static{
        userArray = new User[]{
                new User("TOM","123"),
                new User("CAT","123"),
                new User("JANE","123")
        };
        userList.add(new User("tom","123"));
        userList.add(new User("cat","123"));
        userList.add(new User("jane","123"));
    }




    /**
     * 测试登录方法
     */
    @SuppressWarnings("resource")
    @Test
    public void testLogin(){
        Scanner scanner = new Scanner(System.in);
        String userName,userPassword,code;
        userName = userPassword = code = null;
        String verifyCode ;
        User user;
        do{
            if(userName!=null){
                System.out.println("用户名或密码错误,请重新输入");
            }

            //获取一个四位数字的验证码
            verifyCode = ((int)(Math.random()*9000)+1000)+"";

            System.out.print("请输入用户名");
            userName = scanner.nextLine().trim();
            System.out.print("\n请输入密码:");
            userPassword = scanner.nextLine().trim();
            System.out.println("请输入验证码:"+verifyCode);
            code = scanner.nextLine().trim();

            //进行封装 用户信息
            user = new User(userName,userPassword);

            //判断验证码是否正确
            while(!verifyCode.equals(code)){
                verifyCode = ((int)(Math.random()*9000)+1000)+"";
                System.out.println("验证码不正确,请重新输入:  "+verifyCode);
                code = scanner.nextLine().trim();
            }

//      }while(isExists(userName,userPassword));
        }while(isExists(user));

        System.out.println("欢迎您"+userName+"   登录成功");
    }




    /**
     * 验证用户是否存在 数组方式
     * @param userName
     * @param userPassword
     * @return
     */
    @SuppressWarnings("unused")
    private static boolean isExists(String userName,String userPassword){
        for (int i = 0; i < userArray.length; i++) {
            if(userArray[i].getUserName().equals(userName)
                    &&userArray[i].getUserPassword().equals(userPassword)
                    ){
                return false;
            }
        }
        return true;
    }



    /**
     * 验证用户是否存在 集合方式
     * @param userName
     * @param userPassword
     * @return
     */
    private static boolean isExists(User user){
        for (int i = 0; i < userList.size(); i++) {
            if(userList.get(i).getUserName().equals(user.getUserName())
                    &&userArray[i].getUserPassword().equals(user.getUserPassword())
                    ){
                return false;
            }
        }
        return true;
    }

}





/**
 * 创建的user类
 *
 * @author sunRainAmazing
 *
 */
class User{

    private String userName;
    private String userPassword;


    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getUserPassword() {
        return userPassword;
    }
    public void setUserPassword(String userPassword) {
        this.userPassword = userPassword;
    }


    public User() {
        super();
    }
    public User(String userName, String userPassword) {
        super();
        this.userName = userName;
        this.userPassword = userPassword;
    }


}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript 可以用来模拟滑块验证码(也称为 CAPTCHA)的效果,通常是为了增强网站的安全性,防止自动化机器人恶意操作。以下是一个简单的步骤来创建滑块验证码: 1. **HTML 结构**: 创建包含两个图片元素和一个输入框的结构,滑动条和原始图像分别放在左右两侧。 ```html <div class="slider-captcha"> <div id="slider-img" style="width: 100%; height: 60px; position: relative;"></div> <input type="range" min="0" max="100" step="1" id="slider-range"> <img src="" alt="Original Image" id="original-image"> <label for="slider-input">请输入正确位置:</label> <input type="number" id="slider-input" /> </div> ``` 2. **CSS 样式**: 定义滑块、范围条以及图片的位置和大小等样式。 ```css .slider-captcha { display: flex; align-items: center; justify-content: space-between; } ``` 3. **JavaScript 动态滑块**: 使用 JavaScript 更新滑动条的图片,并监听 `onchange` 或 `oninput` 事件来检查用户输入是否匹配。 ```javascript // 获取相关元素 const sliderImg = document.getElementById('slider-img'); const originalImage = document.getElementById('original-image'); const sliderRange = document.getElementById('slider-range'); const sliderInput = document.getElementById('slider-input'); // 设置滑动条起点和终点 let startSlideX = 0, endSlideX = originalImage.width; function updateSlider() { const slidePosition = Math.floor(sliderRange.value); sliderImg.style.left = slidePosition + 'px'; } updateSlider(); // 初始设置 sliderRange.addEventListener('input', function(e) { const inputVal = parseInt(sliderInput.value); if (Math.abs(inputVal - e.target.value) <= 10) { // 验证输入在允许范围内 updateSlider(); } else { // 提示错误或重置 alert('输入不正确,请重新滑动验证!'); sliderInput.value = ''; sliderRange.value = 0; } }); ``` 4. **混淆滑动条图片**: 在每次更新时,随机改变图片的位置,增加猜解难度。 - **高级实现可能还需要结合一些额外技术**,如对比用户输入和滑动后的图片差异,或者限制连续尝试次数,以防恶意破解。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值