java中MD5加密
MD5加密是一种不可逆(一些网站通过庞大的数据库可以解密一些简单的)的加密算法(其实是信息摘要算法),常用于用户密码,文件上传等
package com.mobile.utils; import org.apache.commons.codec.digest.DigestUtils; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; public class Md5 { // 获得MD5摘要算法的 MessageDigest 对象
private static MessageDigest _mdInst = null;
//自定义的字符串组合(为安全考虑,建议使用自定义的密码字符串组合)
private static char hexDigits[] = {'8', '9', '7', '4', '5', '0', '2', '6', '3', '1', 'C', 'D', 'A', 'B', 'E', 'F'};
//默认的密码字符串组合,用来将字节转换成 16 进制表示的字符,apache校验下载的文件的正确性用的就是默认的这个组合(使用这个的话用在线解密工具可能会破解)
private static char hexDigits2[] = { '0', '1', '2', '3', '4', '5', '6','7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; private static MessageDigest getMdInst() {
if (_mdInst == null) {
try {
_mdInst = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
return _mdInst;
} /***
* MD5加密 生成32位md5码
* @param inStr 待加密字符串
* @return 返回32位md5码
*/
public static String md5Encode(String inStr) {
try {
byte[] btInput = inStr.getBytes("utf-8");
// 使用指定的字节更新摘要
getMdInst().update(btInput);
// 获得密文
byte[] md = getMdInst().digest();
// 把密文转换成十六进制的字符串形式
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (byte byte0 : md) {
str[k++] = hexDigits2[byte0 >>> 4 & 0xf];
str[k++] = hexDigits2[byte0 & 0xf];
}
return new String(str);
} catch (Exception e) {
e.printStackTrace();
return null;
}
} /**
* 测试主函数
* @param args
* @throws Exception
*/
public static void main(String args[]) throws Exception {
String str = "程序默认没有bug";
System.out.println("原始:" + str);
System.out.println("MD5(1)后:" + Md5.md5Encode(str)); //使用第三方的jar包加密(采用的密码字符串是默认的)
String encodeStr=DigestUtils.md5Hex(str);
System.out.println("MD5(2)后:" + encodeStr);
} }
运行测试如下:

一般后台使用用户密码时,会采用自定义的密码字符串的组合,与三方对接时,须统一密码字符串组合,不然加密后的字符串会不同,导致验证失败
java中MD5加密的更多相关文章
- java中MD5加密的小使用
最近项目中需要用到md5加密,就自己在网上看了看. package com.wxgs.ch01; import java.security.MessageDigest; import java.sec ...
- java中md5加密方法
package com.func; import java.io.UnsupportedEncodingException;import java.math.BigInteger;import jav ...
- JAVA中MD5加密实现
MD5加密实现 结 package com.pb; import java.io.UnsupportedEncodingException; import java.security.Message ...
- 关于java中MD5加密(可直接使用)
本文转自:http://www.cnblogs.com/solove/archive/2011/10/18/2216715.html 上部分是转载的关于字符串的加密,后半部分则比较全,包括字符串.文件 ...
- 使用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加密及解密的代码实例分享
链接:http://www.jb51.net/article/86027.htm Java实现MD5加密及解密的代码实例分享 作者:厦门大学陈黎栋 字体:[增加 减小] 类型:转载 时间:2016-0 ...
- Java C# MD5 加密串一致性
Java C# MD5 加密串一致性 Java public final static String md5(String s) { char hexDigits[] = { '0', '1', ...
随机推荐
- rds
数据库:提供数据的高可用保证,至少要用双节点(一主已备,经典高可用架构:采用基于binlog的数据复制技术维护数据库的可用性和数据一致性.同时,高可用版的性能也可以满足业务生产环境的需求,配置上采用物 ...
- springCloud笔记
分布式和集群的理解:比如在一个厨房有两个厨师,一个炒菜,一个洗菜,各自做不同的事情,但是却在合作,这种叫做分布式,两个都在炒菜或者都在做菜,就叫做集群. eureka的是springCloud的注册中 ...
- Programming for Everyone !
Hello Internet ! This blog is to store my algorithm practices. Since Evernote code blocks do not sho ...
- npm -S -D -g i 有什么区别
npm i module_name -S = > npm install module_name --save 写入到 dependencies 对象 //开发环境能使用,生产环境也能使用or ...
- (转载)python 命名.py 不能与模块相同,否则会报错
在学习python网页爬虫时,测试requests的post方法进行表单提交时,命名.py文件为requests.py 代码如下: import requests params={'firstname ...
- Mac os查看链接过的ssh key
https://shipengliang.com/software-exp/mac-os-如何管理ssh-key.html
- Spring 出现Could not resolve placeholder问题的解决方法
项目开发中,使用@value注解获取不到配置文件里面的属性字段. 检查配置文件,在spring的配置文件中有配置读取,如下: <!-- 使用spring自带的占位符替换功能 --> < ...
- self_vs_default_definee_vs_receiver
最近在学习ruby的过程遇到很多有趣的博客,随记录学习,这篇学习笔记摘自http://yugui.jp/articles/846 #self ruby中self无处不在,或是显示的调用或是隐含调用,方 ...
- python 初级重点
关于python初学时遇到的重点: 1 python 2 和3 的区别 python2**不识别中文** -*- coding: utf-8 -*-(因为不能识别中文,所以代码有中文时需要在最前面加入 ...
- 用js实现贪吃蛇
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...