Base64与MD5(数据加密)与ValidateCode(验证码)
Base64与MD5
Base64
作用:对数据进行加密解密的类,由JDK提供
加密
public static String encode(String str){String s =Base64.getEncoder().encodeToString(str.getBytes());return s;
}
解密
public static String decode(String str){byte[] bytes = Base64.getDecoder().decode(str);String s = new String(bytes);return s;
}
封装成工具类
import java.util.Base64;
public class Base64Utils {public static String encode(String str){String s = Base64.getEncoder().encodeToString(str.getBytes());return s;}public static String decode(String str){byte[] bytes = Base64.getDecoder().decode(str);String s = new String(bytes);return s;}
}
MD5
作用:对数据进行加密,由JDK提供
加密
public static String encode(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 encode(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, 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("/code")
public class CodeServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponseresp) throws ServletException, IOException {doPost(req,resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponseresp) throws ServletException, IOException {ValidateCode validateCode = new ValidateCode(100, 30, 4, 10);String code = validateCode.getCode();req.getSession().setAttribute("code",code);validateCode.write(resp.getOutputStream());}
}
前端代码
<img src="code" id="btn_getcode">
切换验证码
注意:引入浏览器缓存的原因,如果我们访问的地址没有发生改变浏览器不会为我们在此发起请求.
所以我们在请求地址后加一个可变的参数(可以加一个随机数),该参数无须被服务器获取.只是防止因浏览器缓存请求被拦截
$("#btn_getcode").click(function () {// $("#btn_getcode").attr("src","code?d="+new Date().getTime());//或$("#btn_getcode").attr("src","code?d="+Math.random());
});
Base64与MD5(数据加密)与ValidateCode(验证码)相关推荐
- 简要介绍BASE64、MD5、SHA、HMAC几种方法。
加密解密,曾经是我一个毕业设计的重要组件.在工作了多年以后回想当时那个加密.解密算法,实在是太单纯了. 言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书. ...
- 偏前端 - vue-cli(axios请求数据==》token+按接口参数顺序(参数值拼接base64)- MD5)...
token+按接口参数顺序(参数值拼接base64)-> MD5) 请教于"喵咪",再此特别鸣谢!~ 特别强调:import qs from qs; 这个内部方法一定要用哦. ...
- Shiro的Base64和MD5加密的使用
场景 Shiro自带Base64和MD5加密. Base64位置: MD5位置: 实现 新建测试类 package com.badao.util;import org.apache.shiro.cod ...
- 时间戳转换、BASE64和MD5加解密、秒表、图片进行BASE64转换离线使用小工具
PortableTools使用说明文档 工具下载地址:PortableTools 一.时间戳转换 1.日期转换为时间戳 2.时间戳转换为日期 二.BASE64和MD5加解密 1.BASE64输入原文, ...
- python学习笔记(二十七) -- 常用内建模块(二) Base64、MD5、SHA1、hmac
目录 base64 hashlib MD5 SHA1 hmac base64 原理 base64就是对二进制数据进行编码,比如我有6字节的二进制数据,然后每3个字节分为一组,也就是一组有3*8 = 2 ...
- AES、DES、RSA、base64、MD5、SHA加密
对称加密: 需要对加密和解密使用相同密钥的加密算法.由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用.对称性加密也称为密钥加密. 所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥 ...
- c语言加密算法头文件下载(base64、md5、sha1)
1.base64 网上有一份开头就是 // Encoding lookup table char base64encode_lut[] = { 的base64.h, 在loadrunner中加密有b ...
- java-信息安全(一)-BASE64,MD5,SHA,HMAC,RIPEMD算法
概述 信息安全基本概念: BASE64 编码格式 Base58 编码 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorithm, ...
- Python 中的url,Base64和MD5编码解码的使用
1.encode()和decode() 我们所说的加密方式,都是对二进制编码的格式进行加密的,对应到Python中,则是我们的Bytes(字节). 所以当我们在Python中进行加密操作的时候,要确保 ...
最新文章
- Deformable ConvNets--Part2: Spatial Transfomer Networks(STN)
- LINUX(Cumulus Linux白盒交换机)开发基础到提高[1]-Cumulus Linux简介
- perl常用正则表达式集合
- 普通用户通过Putty密钥方式登录
- 步道乐跑怎么刷公里_车子一年跑不到5000公里,怎么保养比较好?这些方法最省钱...
- 前端性能优化 —— 起步篇(一)
- office文档转换为html,OFFICE 文档转换为html在线预览
- re模块compile方法
- bash: No such file or directory
- MYSQL之You can't specify target table for update in FROM clause解决办法
- pyspider实战:爬取想要的妹纸图(附源码)
- 中国首个开源基金会“开放原子开源基金会”亮相
- 微信如何加满5000人?送你找群加群的6个渠道和10大方法!
- 网上学习编程的七大趋势
- 【J2ME资料汇总】48个推荐资料+40个经典源码——下载目录
- 2022-2028全球与中国一站式婚礼市场现状及未来发展趋势
- python怎么编辑文件_使用python编辑.odt文件
- 工厂人员定位系统方案
- 抖音热门表白代码bat
- Python创建列表