java 实现md5加密的三种方式

CreateTime--2018年5月31日15点04分

Author:Marydon

一、解密

  说明:截止文章发布,Java没有实现解密,但是已有网站可以免费破解了!(本质应该是将加密结果与加密前的数据对应存储起来了)

  见文末相关推荐

二、加密的三种方式

  说明:都是返回长度为32位的16进制字符串。

  方法一:推荐使用

  所需jar包:commons-codec.jar

import org.apache.commons.codec.digest.DigestUtils;
/**
* MD5加密之方法一
* @explain 借助apache工具类DigestUtils实现
* @param str
* 待加密字符串
* @return 16进制加密字符串
*/
public static String encryptToMD5(String str) {
return DigestUtils.md5Hex(str);
}  

  方法二

/**
* MD5加密之方法二
* @explain java实现
* @param str
* 待加密字符串
* @return 16进制加密字符串
*/
public static String encrypt2ToMD5(String str) {
// 加密后的16进制字符串
String hexStr = "";
try {
// 此 MessageDigest 类为应用程序提供信息摘要算法的功能
MessageDigest md5 = MessageDigest.getInstance("MD5");
// 转换为MD5码
byte[] digest = md5.digest(str.getBytes("utf-8"));
hexStr = ByteUtils.toHexString(digest);
} catch (Exception e) {
e.printStackTrace();
}
return hexStr;
}  

  方法三

/**
* MD5加密之方法二
* @explain java实现
* @param str
* 待加密字符串
* @return 16进制加密字符串
*/
public static String encrypt2ToMD5(String str) {
// 加密后的16进制字符串
String hexStr = "";
try {
// 此 MessageDigest 类为应用程序提供信息摘要算法的功能
MessageDigest md5 = MessageDigest.getInstance("MD5");
// 转换为MD5码
byte[] digest = md5.digest(str.getBytes("utf-8"));
hexStr = ByteUtils.toHexString(digest);
} catch (Exception e) {
e.printStackTrace();
}
return hexStr;
}

三、测试

public static void main(String[] args) {
String str = "Marydon";
System.out.println("MD5加密方法一:" + MD5Utils.encryptToMD5(str));
System.out.println("MD5加密方法二:" + MD5Utils.encrypt2ToMD5(str));
System.out.println("MD5加密方法三:" + MD5Utils.encrypt3ToMD5(str));
// 结束都是:988218e7eefcd86d5d855a8947f37f43
}

  

 

java 实现md5加密的三种方式与解密的更多相关文章

  1. java中遍历集合的三种方式

    第一种遍历集合的方式:将集合变为数组 package com.lw.List; import java.util.ArrayList; import java.util.List; import ja ...

  2. java加载配置文件的三种方式

    比如我们要加载db.properties文件 如图: 比如我们要加载source目录下的db.properties文件.就有以下几种方式 第一种是文件io流: public static void l ...

  3. JAVA实现Base64编码的三种方式

    摘要: Javabase64编码的三种方式   有如下三种方式: 方式一:commons-codec.jar Java代码  1. String base64String="whuang12 ...

  4. Java通过JDBC连接数据库的三种方式!!!并对数据库实现增删改查

    前言 java连接数据库完整流程为: 1,获得驱动(driver),数据库连接(url),用户名(username),密码(password)基本信息的三种方式. 2,通过获得的信息完成JDBC实现连 ...

  5. java实现HTTP请求的三种方式

    目前JAVA实现HTTP请求的方法用的最多的有两种:一种是通过HTTPClient这种第三方的开源框架去实现.HTTPClient对HTTP的封装性比较不错,通过它基本上能够满足我们大部分的需求,Ht ...

  6. 【转载】java实现HTTP请求的三种方式

    目前JAVA实现HTTP请求的方法用的最多的有两种:一种是通过HTTPClient这种第三方的开源框架去实现.HTTPClient对HTTP的封装性比较不错,通过它基本上能够满足我们大部分的需求,Ht ...

  7. Java 实现线程安全的三种方式

    一个程序在运行起来的时候会转换成进程,通常含有多个线程. 通常情况下,一个进程中的比较耗时的操作(如长循环.文件上传下载.网络资源获取等),往往会采用多线程来解决. 比如显示生活中,银行取钱问题.火车 ...

  8. HTTP:Java实现HTTP请求的三种方式

    目前JAVA实现HTTP请求的方法用的最多的有两种: 一种是通过HTTPClient这种第三方的开源框架去实现.HTTPClient对HTTP的封装性比较不错,通过它基本上能够满足我们大部分的需求,H ...

  9. jmeter对接口测试入参进行MD5加密的5种方式

    在使用jmeter做测试的过程中,经常需要对请求的入参进行加密,下面列举几种常用的方法,以登录请求密码需要MD5加密为例. 虽然可以先把参数化的明文密码都先md5加密,而不是在登录前先执行加密,但是实 ...

随机推荐

  1. 直方图与bin

    1.bin的含义 直方图中bin的含义:计算颜色直方图需要将颜色空间划分为若干小的颜色区间,即直方图的bin,通过计算颜色在每个小区间内德像素得到颜色直方图,bin越多,直方图对颜色的分辨率越强,但增 ...

  2. Shell操作mysql数据库

    From : http://www.2cto.com/database/201306/220570.html Shell操作mysql数据库   mysql  -hhostname -Pport -u ...

  3. cannot be resolved. It is indirectly referenced from required .class files

    缺少引用. 把缺少的引用在导入一下...如果是mavan 在当前moudle里也要把 dependency加进来

  4. Java Collection Framework : List

    摘要: List 是 Java Collection Framework的重要成员,详细包括List接口及其全部的实现类.由于List接口继承了Collection接口,所以List拥有Collect ...

  5. IsPostback小结

        这两天一直碰到它,却总是不明白,甚至一开始连回传都不知道是啥..现在终于理解了,分享给大家,当然,如有不妥之处,还请大家不吝指教! 解释     要想明白IsPostback,先来看看下面的这 ...

  6. Permutations leetcode java

    题目: Given a collection of numbers, return all possible permutations. For example, [1,2,3] have the f ...

  7. ARouter 路由 组件 跳转 MD

    目录 简介 支持的功能 典型应用 简单使用 进阶使用 更多功能 其他 Q&A Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs bai ...

  8. 【google面试题】求1到n的正数中1出现的次数的两种思路及其复杂度分析

    问题描写叙述: 输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数.比如输入12,从1到12这些整数中包括1 的数字有1.10.11和12.1一共出现了5次. 这是一道广为流传的googl ...

  9. 手动建库时一个错误:Error accessing PRODUCT_USER_PROFILE

    首先感谢前辈的文章:http://space.itpub.net/14184018/viewspace-691502 手动创建数据库完成后,创建新用户,并用新用户登陆到数据库时,报错如下: SYS@ ...

  10. 斯坦福大学CS224d课程目录

    https://www.zybuluo.com/hanxiaoyang/note/404582 Lecture 1:自然语言入门与次嵌入 1.1 Intro to NLP and Deep Learn ...