场景:平常我们用户注册的密码保存到数据库都不会使用明文存储,而需要经过加密进行存储,因为保证用户的安全性,我们通常是用md5算法来加密。

注意:MD5加密是一个标准算法,他的加密特点是不可逆性,如果需要找回密码的功能,则可以使用其他算法,例如:DES,SHA。

32位 小写

/*** MD5加密类(封装jdk自带的md5加密方法)*/
public class MD5Util {public static String encrypt(String source) {return encodeMd5(source.getBytes());}private static String encodeMd5(byte[] source) {try {return encodeHex(MessageDigest.getInstance("MD5").digest(source));} catch (NoSuchAlgorithmException e) {throw new IllegalStateException(e.getMessage(), e);}}private static String encodeHex(byte[] bytes) {StringBuffer buffer = new StringBuffer(bytes.length * 2);for (int i = 0; i < bytes.length; i++) {if (((int) bytes[i] & 0xff) < 0x10) {buffer.append("0");}buffer.append(Long.toString((int) bytes[i] & 0xff, 16));}return buffer.toString();}public static void main(String[] args) {System.out.println(encrypt("123456"));}}

32位 大写​​​​​​

/*** MD5加密类*/
@Slf4j
public class MD5Util {public final static String encrypt(String pwd) {//用于加密的字符char md5String[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};try {//使用平台的默认字符集将此 String 编码为 byte序列,并将结果存储到一个新的 byte数组中byte[] btInput = pwd.getBytes();//信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值。MessageDigest mdInst = MessageDigest.getInstance("MD5");//MessageDigest对象通过使用 update方法处理数据, 使用指定的byte数组更新摘要mdInst.update(btInput);//摘要更新之后,通过调用digest()执行哈希计算,获得密文byte[] md = mdInst.digest();//把密文转换成十六进制的字符串形式int j = md.length;char str[] = new char[j * 2];int k = 0;for (int i = 0; i < j; i++) {   // i = 0byte byte0 = md[i];  //95str[k++] = md5String[byte0 >>> 4 & 0xf];    // 5str[k++] = md5String[byte0 & 0xf];   // F}//返回经过加密后的字符串return new String(str);} catch (Exception e) {log.error("generate md5 error", pwd, e);return null;}}public static void main(String[] arg) {System.out.println(MD5Util.encrypt("123456"));}}

 你的鼓励将是我创作的最大动力

转载请注明出处:BestEternity亲笔。

Java实现MD5加密工具类相关推荐

  1. Java 开发中常用的 4 种加密方法。MD5加密工具类测试 base64加密工具类测试 SHA加密工具类测试 BCrypt加密工具类测试

    一.工具类 1, md5加密工具类 2, base64加密工具类 3, Bcrypt工具类 二.加密测试 MD5加密测试 base64加密测试 SHA加密测试 BCrypt加密测试 一.工具类 1, ...

  2. MD5加密工具类(实战版)

    MD5加密工具类(实战版) 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成 ...

  3. Java实现MD5加密解密类

    Java实现MD5加密以及解密类,附带测试类,具体见代码. MD5加密解密类--MyMD5Util,代码如下: [java] view plaincopy package com.zyg.securi ...

  4. C# MD5加密工具类

    方式一:(与其他MD5算法在加密某些数据时结果不同,但只有该方法适用于百度云推送的MD5加密) /// <summary>/// MD5加密/// </summary>/// ...

  5. md5加密工具类_贼好用的 Java 工具类库! GitHub 星标 10k+,你在用吗?

    来源:ryanc.cc/archives/hutool-java-tools-lib 简介 Hutool是Hu + tool的自造词,前者致敬我的"前任公司",后者为工具之意,谐音 ...

  6. java 随机md5_java常用工具类 Random随机数、MD5加密工具类

    本文实例为大家分享了java常用工具类的具体代码,供大家参考,具体内容如下 random随机数工具类 package com.jarvis.base.util; import java.util.ra ...

  7. MD5加密工具类!!!

    MD5Util工具类 public class Md5 {/*** 十六进制下数字到字符的映射数组*/private final static String[] HEX_DIGITS = {" ...

  8. Flutter MD5加密工具类

    第一步 更新pubspec.yaml dependencies:flutter:sdk: fluttercrypto: ^2.0.6 2  创建工具类 import 'dart:convert'; i ...

  9. 【java小程序实战】小程序短视频后台项目之MD5加密工具类

    对字符串进行简单加密,直接上代码: package com.imooc.utils;import org.apache.commons.codec.binary.Base64;import java. ...

  10. java md5 c_java MD5加密工具类

    package com.person.util; import java.lang.reflect.Array; public class MD5 { /* 下面这些 S11-S44 实际上是 \uF ...

最新文章

  1. 综合-某假期欢乐赛 (Apri, 2018)
  2. GoogLeNet代码解读
  3. java更新数据库错误就回滚_Java 中对数据库操作时的 回滚
  4. 四个方面快速排查工业级光纤收发器死机原因
  5. 最优化学习笔记(十四)——共轭梯度法
  6. shell变量的使用
  7. CCF201609-3 炉石传说(100分)
  8. 蓝桥杯——说好的进阶之入学考试
  9. AcWing 842. 排列数字(DFS)
  10. Android studio 怎么使用已经下载好的Android SDK ?
  11. mongoDB学习--建库、删库、插入、更新
  12. web前端技术课程作业
  13. 联想计算机怎么改为光驱启动,联想笔记本光驱启动设置方法
  14. 燕十八-PHP公益培训-学习
  15. 计算机硕士毕业论文范文,计算机论文:精选计算机硕士毕业论文范文十篇.docx...
  16. 台式计算机网卡驱动不能正常使用,系统提示“您的网卡驱动程序不正常!”怎么办 是什么原因...
  17. win10 新版文件资源管理器
  18. Android不同屏幕适配的大神解决方案(转)
  19. bWAPP解题笔记——A7-Missing Functional Level Access Control
  20. C#编程-126:WPF初步_彭世瑜_新浪博客

热门文章

  1. 构建Arduino的LoRa远程智能空气质量监测系统
  2. Win8仿Win10无边框效果的实现
  3. 分享133个JSP源码,总有一款适合你
  4. 使用ActionForm的validate()进行验证
  5. 域渗透——获取用户明文密码
  6. 高通8926和高通410的参数对比
  7. JDBC————PreparedStatement批处理
  8. c语言 无锁编程,无锁编程与有锁编程的效率总结、无锁队列的实现(c语言)
  9. 微信小程序自动化测试——智能化 Monkey
  10. 隐马尔可夫模型(HMM)