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(验证码)相关推荐

  1. 简要介绍BASE64、MD5、SHA、HMAC几种方法。

    加密解密,曾经是我一个毕业设计的重要组件.在工作了多年以后回想当时那个加密.解密算法,实在是太单纯了.     言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书.     ...

  2. 偏前端 - vue-cli(axios请求数据==》token+按接口参数顺序(参数值拼接base64)- MD5)...

    token+按接口参数顺序(参数值拼接base64)-> MD5) 请教于"喵咪",再此特别鸣谢!~ 特别强调:import qs from qs; 这个内部方法一定要用哦. ...

  3. Shiro的Base64和MD5加密的使用

    场景 Shiro自带Base64和MD5加密. Base64位置: MD5位置: 实现 新建测试类 package com.badao.util;import org.apache.shiro.cod ...

  4. 时间戳转换、BASE64和MD5加解密、秒表、图片进行BASE64转换离线使用小工具

    PortableTools使用说明文档 工具下载地址:PortableTools 一.时间戳转换 1.日期转换为时间戳 2.时间戳转换为日期 二.BASE64和MD5加解密 1.BASE64输入原文, ...

  5. python学习笔记(二十七) -- 常用内建模块(二) Base64、MD5、SHA1、hmac

    目录 base64 hashlib MD5 SHA1 hmac base64 原理 base64就是对二进制数据进行编码,比如我有6字节的二进制数据,然后每3个字节分为一组,也就是一组有3*8 = 2 ...

  6. AES、DES、RSA、base64、MD5、SHA加密

    对称加密: 需要对加密和解密使用相同密钥的加密算法.由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用.对称性加密也称为密钥加密. 所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥 ...

  7. c语言加密算法头文件下载(base64、md5、sha1)

    1.base64 网上有一份开头就是 // Encoding lookup table char base64encode_lut[] = {  的base64.h, 在loadrunner中加密有b ...

  8. java-信息安全(一)-BASE64,MD5,SHA,HMAC,RIPEMD算法

    概述 信息安全基本概念: BASE64 编码格式 Base58 编码 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorithm, ...

  9. Python 中的url,Base64和MD5编码解码的使用

    1.encode()和decode() 我们所说的加密方式,都是对二进制编码的格式进行加密的,对应到Python中,则是我们的Bytes(字节). 所以当我们在Python中进行加密操作的时候,要确保 ...

最新文章

  1. Deformable ConvNets--Part2: Spatial Transfomer Networks(STN)
  2. LINUX(Cumulus Linux白盒交换机)开发基础到提高[1]-Cumulus Linux简介
  3. perl常用正则表达式集合
  4. 普通用户通过Putty密钥方式登录
  5. 步道乐跑怎么刷公里_车子一年跑不到5000公里,怎么保养比较好?这些方法最省钱...
  6. 前端性能优化 —— 起步篇(一)
  7. office文档转换为html,OFFICE 文档转换为html在线预览
  8. re模块compile方法
  9. bash: No such file or directory
  10. MYSQL之You can't specify target table for update in FROM clause解决办法
  11. pyspider实战:爬取想要的妹纸图(附源码)
  12. 中国首个开源基金会“开放原子开源基金会”亮相
  13. 微信如何加满5000人?送你找群加群的6个渠道和10大方法!
  14. 网上学习编程的七大趋势
  15. 【J2ME资料汇总】48个推荐资料+40个经典源码——下载目录
  16. 2022-2028全球与中国一站式婚礼市场现状及未来发展趋势
  17. python怎么编辑文件_使用python编辑.odt文件
  18. 工厂人员定位系统方案
  19. 抖音热门表白代码bat
  20. Python创建列表

热门文章

  1. 关于Wechat 的充值
  2. 有必要创建一个属于自己的维基百科企业词条吗
  3. ACM 训练大纲【CSUST_ACM】
  4. 生产制造业订单管理软件如何做好订单变更管理?
  5. 宁都中学2021高考成绩查询,燃爆了!宁都中学2021届学子高声呐喊……
  6. 计算机视觉之图像检索
  7. 一年纯手工打造的Java老A上册开始预售了
  8. 华为机试:连续出牌数量
  9. Functional Programming in Java venkat(3) Using Collections part1
  10. eclipse 如何运行 .jsp文件?