java生成图片验证码返回base64图片信息

本文探讨了两种验证码生成方式:前端JS生成和后端Java生成并返回Base64字符串。后端生成并返回Base64图片信息能提高安全性,防止验证码被轻易识别。
摘要由CSDN通过智能技术生成

一般在生成验证码,有两种形式:

  1. 前端js生成,并在前端验证通过,提交表单到后台。安全性较低,很容易被识别
  2. 后端生成返回给前端展示,提交用户验证码到后台验证通过。安全性较前端方式高,因为整个验证过程在后台。
其实验证码也没有绝对的安全,只能说后端的处理方式比前端好一些而已,所以这个示例是利用java后台生成二维码图片,并返回给前端base64格式,展示给用户,后台将二维码真值保存在session,用户提交输入的验证码和保存的真值做比较,然后返回前台是否验证成功。

1.创建一个验证码生成工具类。此类为静态类,
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.Serializable;
import java.util.Random;

import javax.imageio.ImageIO;

import org.apache.commons.lang3.RandomUtils;

import com.alibaba.druid.util.Base64;
  
  
/**
 *  
 * @ClassName: ValidateCodeUtil
 * @Description: 验证码生成工具类
 * @author chenhx
 * @date 2017年11月14日 上午11:00:07
 */
public class ValidateCodeUtil {  
    private static Validate validate = null;                  //验证码类,用于最后返回此对象,包含验证码图片base64和真值
    private static Random random = new Random();              //随机类,用于生成随机参数
    private static String randString = "0123456789abcdefghijkmnpqrtyABCDEFGHIJLMNQRTY";//随机生成字符串的取值范围  
      
    private static int width = 80;     //图片宽度  
    private static int height = 34;    //图片高度  
    private static int StringNum =
  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值