博客
关于我
客户端登陆服务器用户名验证
阅读量:542 次
发布时间:2019-03-07

本文共 3000 字,大约阅读时间需要 10 分钟。

Java验证登录系统优化方案

系统简介

这是一个基于Java语言开发的客户端-服务器验证登录系统,旨在通过键盘输入验证用户名并防止暴力登录。系统允许最多三次尝试登录,确保账号安全。

系统功能

  • 客户端:接收用户名并逐步验证
  • 服务器:根据用户名判断是否存在,如果存在返回欢迎信息,否则提示用户名不存在
  • 防止暴力登录:限制最多三次尝试

优化思路

  • 客户端实现

    • 使用Socket建立连接
    • 通过BufferedReader读取键盘输入
    • 允许用户最多三次尝试登录
  • 服务器端处理

    • 使用多线程处理客户端连接
    • 查找 username.txt 文件,验证是否存在
    • 返回相应提示信息
  • 安全性与用户体验

    • 设置三次登录限制
    • 提供清晰的提示信息
    • 用户友好的界面设计
  • 代码解读

    客户端代码:

    class client {    public static void main(String[] args) throws Exception {        Socket s = new Socket("192.168.33.1", 10008);                BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));        PrintWriter pw = new PrintWriter(s.getOutputStream(), true);                BufferedReader bufin = new BufferedReader(new InputStreamReader(s.getInputStream()));                boolean flag = true;        for (int x = 0; x < 3; x++) {            String line = bufr.readLine();            if (line == null) break;                        pw.println(line);            pw.println(line);                        String info = bufin.readLine();            System.out.println("Server info: " + info);            if (info.contains("欢迎登陆")) flag = false;            if (!flag) break;        }                bufr.close();        s.close();    }}

    服务器端代码:

    class ServerThread implements Runnable {    private Socket s;    ServerThread(Socket s) {        this.s = s;    }    public void run() {        String ip = s.getInetAddress().getHostAddress();        System.out.println(ip + "...........connect");                try {            for (int x = 0; x < 3; x++) {                BufferedReader bufin = new BufferedReader(new InputStreamReader(s.getInputStream()));                String name = bufin.readLine();                if (name == null) break;                                BufferedReader bufr = new BufferedReader(new FileReader("user.txt"));                PrintWriter out = new PrintWriter(s.getOutputStream(), true);                boolean flag = false;                                while ((line = bufr.readLine()) != null) {                    if (line.equals(name)) {                        flag = true;                        break;                    }                }                                if (flag) {                    System.out.println(name + ":已登录");                    out.println(name + ":欢迎登陆");                    break;                } else {                    System.out.println(name + ":尝试登陆");                    out.println(name + ":用户名不存在");                }            }            s.close();        } catch (Exception e) {            throw new RuntimeException("验证失败");        }    }}class server {    public static void main(String[] args) throws Exception {        ServerSocket ss = new ServerSocket(10008);        while (true) {            Socket s = ss.accept();            new Thread(new ServerThread(s)).start();        }    }}

    系统优化

  • 代码清理:

    • 删除冗余代码
    • 简化异常处理
    • 优化读取方式
  • 性能提升:

    • 使用线程处理多个客户端
    • 读取本地文本文件实现用户验证
    • 提高数据传输效率
  • 安全性保障:

    • 限制登录次数
    • 验证用户名存在性
    • 提供友好的提示信息
  • 结论

    系统通过简化逻辑优化代码结构,实现了用户验证功能,同时提供良好的用户体验和安全防护,适用于大学校园网下的一般访问验证场景。

    转载地址:http://iypjz.baihongyu.com/

    你可能感兴趣的文章
    OpenCV与AI深度学习 | 实战 | 使用YOLOv8 Pose实现瑜伽姿势识别
    查看>>
    OpenCV与AI深度学习 | 实战 | 使用YoloV8实例分割识别猪的姿态(含数据集)
    查看>>
    OpenCV与AI深度学习 | 实战 | 使用姿态估计算法构建简单的健身训练辅助应用程序
    查看>>
    OpenCV与AI深度学习 | 实战 | 基于YoloV5和Mask RCNN实现汽车表面划痕检测(步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | 实战 | 基于YOLOv9+SAM实现动态目标检测和分割(步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | 实战 | 基于YOLOv9和OpenCV实现车辆跟踪计数(步骤 + 源码)
    查看>>
    OpenCV与AI深度学习 | 实战 | 文本图片去水印--同时保持文本原始色彩(附源码)
    查看>>
    OpenCV与AI深度学习 | 实战—使用YOLOv8图像分割实现路面坑洞检测(步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | 实战篇——基于YOLOv8和OpenCV实现车速检测(详细步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | 实战|OpenCV实时弯道检测(详细步骤+源码)
    查看>>
    OpenCV与AI深度学习 | 实践教程|旋转目标检测模型-TensorRT 部署(C++)
    查看>>
    OpenCV与AI深度学习 | 工业缺陷检测中数据标注需要注意的几个事项
    查看>>
    OpenCV与AI深度学习 | 干货 | 深度学习模型训练和部署的基本步骤
    查看>>
    OpenCV与AI深度学习 | 手把手教你用Python和OpenCV搭建一个半自动标注工具(详细步骤 + 源码)
    查看>>
    OpenCV与AI深度学习 | 深度学习检测小目标常用方法
    查看>>
    OpenCV与AI深度学习 | 超越YOLOv10/11、RT-DETRv2/3!中科大D-FINE重新定义边界框回归任务
    查看>>
    OpenCV与AI深度学习 | 高效开源的OCR工具:Surya-OCR介绍与使用
    查看>>
    Opencv中KNN背景分割器
    查看>>
    OpenCV中基于已知相机方向的透视变形
    查看>>
    OpenCV中的监督学习
    查看>>