方案一:
/** * 1.对文本进行32位小写MD5加密 * @param plainText 要进行加密的文本 * @return 加密后的内容 */ public static String textToMD5L32(String plainText){ String result = null; //首先判断是否为空 try{ MessageDigest md = MessageDigest.getInstance("MD5"); //首先进行实例化和初始化 byte[] btInput = plainText.getBytes(); //得到一个操作系统默认的字节编码格式的字节数组 md.update(btInput); //对得到的字节数组进行处理 byte[] btResult = md.digest(); //进行哈希计算并返回结果 StringBuffer sb = new StringBuffer(); //进行哈希计算后得到的数据的长度 for(byte b : btResult){ int bt = b&0xff; if(bt<16){ sb.append(0); } sb.append(Integer.toHexString(bt)); } result = sb.toString(); }catch(NoSuchAlgorithmException e){ e.printStackTrace(); } return result; }
方案二:
public static String getMD5(String source) { String s = null; char hexChar[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; try { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(source.getBytes());// 使用指定的byte数组更新摘要 byte[] hashCalc = md.digest();// 完成哈希计算 char result[] = new char[16 * 2];// MD5结果返回的是32位字符串,每位是16进制表示的 int k = 0; for (int i = 0; i < 16; i++) {// 循环16次,对每个字节进行操作转换 byte everyByte = hashCalc[i]; result[k++] = hexChar[everyByte >>> 4 & 0xf];// 对每个字节的高4位进行处理,逻辑右移,再相与 result[k++] = hexChar[everyByte & 0xf];// 低4位转换 } s = new String(result); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return s; } public static void main(String[] args) { System.out.println(getMD5("a")); }
java系列--MD5加密的更多相关文章
-
Java C# MD5 加密串一致性
Java C# MD5 加密串一致性 Java public final static String md5(String s) { char hexDigits[] = { '0', '1', ...
-
使用JAVA进行MD5加密后所遇到的一些问题
前言:这几天在研究apache shiro如何使用,这好用到了给密码加密的地方,就碰巧研究了下java的MD5加密是如何实现的,下面记录下我遇到的一些小问题. 使用java进行MD5加密非常的简单,代 ...
-
Java生成MD5加密字符串代码实例
这篇文章主要介绍了Java生成MD5加密字符串代码实例,本文对MD5的作用作了一些介绍,然后给出了Java下生成MD5加密字符串的代码示例,需要的朋友可以参考下 (1)一般使用的数据库中都会保存用 ...
-
Java实现MD5加密_字符串加密_文件加密
Java实现MD5加密,具体代码如下: package com.bstek.tools; import java.io.FileInputStream; import java.io.IOExcept ...
-
java 实现md5加密的三种方式与解密
java 实现md5加密的三种方式 CreateTime--2018年5月31日15点04分 Author:Marydon 一.解密 说明:截止文章发布,Java没有实现解密,但是已有网站可以免费 ...
-
Java实现MD5加密及解密的代码实例分享
链接:http://www.jb51.net/article/86027.htm Java实现MD5加密及解密的代码实例分享 作者:厦门大学陈黎栋 字体:[增加 减小] 类型:转载 时间:2016-0 ...
-
Java的MD5加密和解密
链接:http://www.cnblogs.com/android-blogs/p/5305598.html Java的MD5加密和解密 简单demo: import java.security.* ...
-
java加密算法--MD5加密和哈希散列带秘钥加密算法源码
package com.ompa.common.utils; import java.security.MessageDigest; import java.security.NoSuchAlgori ...
-
java中MD5加密的小使用
最近项目中需要用到md5加密,就自己在网上看了看. package com.wxgs.ch01; import java.security.MessageDigest; import java.sec ...
随机推荐
-
TreeSet和TreeMap的输出
如果加入TreeSet和TreeMap的元素没有实现comprable中的compareTo()方法,那么会报错"treeset cannot be cast to java.lang.Co ...
-
iptable原理
http://www.cnblogs.com/littlehann/p/3708222.html http://seanlook.com/2014/02/23/iptables-understand/ ...
-
cf A. Down the Hatch!
http://codeforces.com/contest/332/problem/A #include <cstdio> #include <iostream> #inclu ...
-
linux如果不进入window磁盘
最近,在windows8.1下安装ubuntu14.04,在windows沉睡.开放时间和进入选择进入系统选项,当时没有引起重视.他选择进入linux系统.但进入后,发现无法进入windows磁盘,百 ...
-
HDU 1241Oil Deposits (DFS)
Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground ...
-
Mysql 层级、执行顺序、执行计划分析
逻辑分层 下面是MySQL的逻辑分层图: 连接层:连接与线程处理,这一层并不是MySQL独有,一般的基于C/S架构的都有类似组件,比如连接处理.授权认证.安全等. 服务层:包括缓存查询.解析器.优化器 ...
-
hdu 6287 口算训练
题意: 小Q非常喜欢数学,但是他的口算能力非常弱.因此他找到了小T,给了小T一个长度为nn的正整数序列a1,a2,...,ana1,a2,...,an,要求小T抛出mm个问题以训练他的口算能力. 每个 ...
-
JavaScript 利用 async await 实现 sleep 效果
const sleep = (timeountMS) => new Promise((resolve) => { setTimeout(resolve, timeountMS); }); ...
-
const修饰符限定的常量
类型前加const修饰符限定变量为只读,称为常量,定义时必须初始化,且初始化后编译器不允许再修改常量的值. 一.常量的定义 const在类型前面 const int value: //value是co ...
-
Android Studio中Git和GitHub使用详解
一.Git和GitHub简述 1.Git 分布式版本控制系统,最先使用于Linux社区,是一个开源免费的版本控制系统,功能类似于SVN和CVS.Git与其他版本管理工具最大的区别点和优点就是分布式: ...