资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Base64与MD5(数据加密)与ValidateCode(验证码)-创新互联

Base64与MD5 Base64

作用:对数据进行加密解密的类,由JDK提供

平罗网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联建站成立于2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站
加密
public static String enhttps://blog.csdn.net/qq761358496/article/details/code(String str){String s =Base64.getEnhttps://blog.csdn.net/qq761358496/article/details/coder().enhttps://blog.csdn.net/qq761358496/article/details/codeToString(str.getBytes());
    return s;
}
解密
public static String dehttps://blog.csdn.net/qq761358496/article/details/code(String str){
    byte[] bytes = Base64.getDehttps://blog.csdn.net/qq761358496/article/details/coder().dehttps://blog.csdn.net/qq761358496/article/details/code(str);
    String s = new String(bytes);
    return s;
}
封装成工具类
import java.util.Base64;
public class Base64Utils {public static String enhttps://blog.csdn.net/qq761358496/article/details/code(String str){String s = Base64.getEnhttps://blog.csdn.net/qq761358496/article/details/coder().enhttps://blog.csdn.net/qq761358496/article/details/codeToString(str.getBytes());
        return s;
    }
    public static String dehttps://blog.csdn.net/qq761358496/article/details/code(String str){byte[] bytes = Base64.getDehttps://blog.csdn.net/qq761358496/article/details/coder().dehttps://blog.csdn.net/qq761358496/article/details/code(str);
        String s = new String(bytes);
        return s;
    }
}
MD5

作用:对数据进行加密,由JDK提供

加密
public static String enhttps://blog.csdn.net/qq761358496/article/details/code(String str){try {MessageDigest messageDigest=MessageDigest.getInstance("MD5");
        messageDigest.update(str.getBytes("utf-8"));
        byte[] digest = messageDigest.digest();
        BigInteger bigInteger=new BigInteger(1, digest);
        String secret=bigInteger.toString(16);
        return secret;
    } catch (Exception e) {e.printStackTrace();
    }
    return null;
}
其封装成工具类
import java.math.BigInteger;
import java.security.MessageDigest;

    public class MD5Utils {public static String enhttps://blog.csdn.net/qq761358496/article/details/code(String str){try {MessageDigest messageDigest=MessageDigest.getInstance("MD5");
            messageDigest.update(str.getBytes("utf-8"));
            byte[] digest = messageDigest.digest();
            BigInteger bigInteger=new BigInteger(1, digest);
            String secret=bigInteger.toString(16);
            return secret;
        } catch (Exception e) {e.printStackTrace();
        }
        return null;
    }
}
Beas64与MD5区别

Base64:

1、可逆性。

2、可以将图片等二进制文件转换为文本文件。

3、可以把非ASCII字符的数据转换成ASCII字符,避免不可见字符。

MD5:

1、不可逆性。

2、任意长度的明文字符串,加密后得到的密文字符串是长度固定的

验证码

因为验证码的编写比较复杂,使用jar包(需要自行导入jar包)

ValidateCode.jar

生成验证码:

//步骤1,创建ValidateCode对象
//1参:生成图片宽度
//2参:生成图片高度
//3参:验证码位数
//4参:影响线数量
ValidateCode validateCode = new ValidateCode(width, height, https://blog.csdn.net/qq761358496/article/details/codeCoun,
lineCount);
//步骤2,获取生产的验证码
String 变量名 = validateCode.getCode();

并通过response输出验证码

validateCode.write(response.getOutputStream());

示例

import cn.dsna.util.images.ValidateCode;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/https://blog.csdn.net/qq761358496/article/details/code")
public class CodeServlet extends HttpServlet {@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse
        resp) throws ServletException, IOException {doPost(req,resp);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse
        resp) throws ServletException, IOException {ValidateCode validateCode = new ValidateCode(100, 30, 4, 10);
        String https://blog.csdn.net/qq761358496/article/details/code = validateCode.getCode();
        req.getSession().setAttribute("https://blog.csdn.net/qq761358496/article/details/code",https://blog.csdn.net/qq761358496/article/details/code);
        validateCode.write(resp.getOutputStream());
    }
}
前端代码
切换验证码

注意:引入浏览器缓存的原因,如果我们访问的地址没有发生改变浏览器不会为我们在此发起请求.

所以我们在请求地址后加一个可变的参数(可以加一个随机数),该参数无须被服务器获取.只是防止因浏览器缓存请求被拦截

$("#btn_gethttps://blog.csdn.net/qq761358496/article/details/code").click(function () {// $("#btn_gethttps://blog.csdn.net/qq761358496/article/details/code").attr("src","https://blog.csdn.net/qq761358496/article/details/code?d="+new Date().getTime());
    //或
    $("#btn_gethttps://blog.csdn.net/qq761358496/article/details/code").attr("src","https://blog.csdn.net/qq761358496/article/details/code?d="+Math.random());
});

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前文章:Base64与MD5(数据加密)与ValidateCode(验证码)-创新互联
标题URL:http://cdkjz.cn/article/decosj.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220