Java语言写验证码

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //让浏览器0.01秒自动刷新一次
        resp.setHeader("refresh","0.01");
        BufferedImage image = new BufferedImage(80, 20, BufferedImage.TYPE_INT_BGR);
        //生成一只画笔
        Graphics2D graphics = (Graphics2D) image.getGraphics();
        //给画笔添加颜色
        graphics.setColor(Color.white);
        //设置绘制大小
        graphics.fillRect(0,0,80,20);
        //改变画笔颜色,准备写字了
        graphics.setColor(Color.BLACK);
        //设置画笔样式
        graphics.setFont(new Font(null,Font.BOLD,20));
        //随机生成六位数的验证码
        graphics.drawString(makeNum(),0,20);
        resp.setContentType("image/png");
        resp.setDateHeader("expires",-1);
        //控制浏览器不要缓存图片
        resp.setHeader("Cache-Control","no-catch");
        ImageIO.write(image,"png",resp.getOutputStream());


    }
    private String makeNum(){
        Random random = new Random();
        String num = random.nextInt(999999)+"";
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 7-num.length(); i++) {
            sb.append("0");
        }
        num = sb.toString()+num;
        return num;

    }
Java语言可以通过短信验证码实现登录安全。以下是一个简单的Java实现短信验证码登录的示例代码: ```java import java.util.Random; import java.util.Scanner; public class SMSCode { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String phoneNumber = scanner.nextLine(); String code = generateCode(); sendSMS(phoneNumber, code); String inputCode = scanner.nextLine(); if (code.equals(inputCode)) { System.out.println("登录成功"); } else { System.out.println("验证码错误"); } } private static String generateCode() { Random random = new Random(); StringBuilder builder = new StringBuilder(); for (int i = 0; i < 6; i++) { builder.append(random.nextInt(10)); } return builder.toString(); } private static void sendSMS(String phoneNumber, String code) { // 发送短信的代码 System.out.println("已向" + phoneNumber + "发送验证码:" + code); } } ``` 这个示例代码中,首先通过Scanner读取用户输入的手机号码,随后生成一个6位的随机数字验证码,并且通过sendSMS函数发送短信验证码到用户的手机上。最后再通过Scanner读取用户输入的验证码,并且将其与之前生成的验证码进行比较,从而实现登录验证。 请注意,这只是一个简单的示例代码,实际的短信验证码登录需要考虑到更多的安全性问题。例如,需要对验证码进行有效期限制,避免验证码被恶意利用;同时,需要对发送短信的次数进行限制,避免滥用短信服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值