转摘自:
http://school.cfan.com.cn/pro/java/2007-08-29/1188351839d99193.shtml
源码
/**
* 类名: MD5Digest<br>
* 说明: 用来进行密码加密的md5公用参数<br>
* 编写日期: 2001/03/05<br>
* 修改者: <br>
* 修改信息: <br>
* @author edgarlo edgarlo@china.com
* @version 1.0<br>
*/
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Digest
{
private MessageDigest __md5 = null;
private StringBuffer __digestBuffer = null;
public MD5Digest()
throws NoSuchAlgorithmException
{
__md5 = MessageDigest.getInstance("MD5");
__digestBuffer = new StringBuffer();
}
public String md5crypt(String s)
{
__digestBuffer.setLength(0);
byte abyte0[] = __md5.digest(s.getBytes());
for(int i = 0; i < abyte0.length; i++)
__digestBuffer.append(toHex(abyte0[i]));
return __digestBuffer.toString();
}
public String toHex(byte one){
String HEX="0123456789ABCDEF";
char[] result=new char[2];
result[0]=HEX.charAt((one & 0xf0) >> 4);
result[1]=HEX.charAt(one & 0x0f);
String mm=new String(result);
return mm;
}
}
--------------------------------------------------------------------------------
/************************************************
MD5 算法的Java Bean
@author:Topcat Tuppin
Last Modified:10,Mar,2001
*************************************************/
package beartool;
import java.lang.reflect.*;
/*************************************************
md5 类实现了RSA Data Security, Inc.在提交给IETF
的RFC1321中的MD5 message-digest 算法。
*************************************************/
public class MD5 {
/* 下面这些S11-S44实际上是一个4*4的矩阵,在原始的C实现中是用#define 实现的,
这里把它们实现成为static final是表示了只读,切能在同一个进程空间内的多个
Instance间共享*/
static final int S11 = 7;
static final int S12 = 12;
static final int S13 = 17;
static final int S14 = 22;
static final int S21 = 5;
static final int S22 = 9;
static final int S23 = 14;
static final int S24 = 20;
static final int S31 = 4;
static final int S32 = 11;
static final int S33 = 16;
static final int S34 = 23;
static final int S41 = 6;
static final int S42 = 10;
static final int S43 = 15;
static final int S44 = 21;
static final byte[] PADDING = { -128, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
/* 下面的三个成员是MD5计算过程中用到的3个核心数据,在原始的C实现中
被定义到MD5_CTX结构中
*/
private long[] state = new long[4]; // state (ABCD)
private long[] count = new long[2]; // number of bits, modulo 2^64 (lsb first)
private byte[] buffer = new byte[64]; // input buffer
/* digestHexStr是MD5的唯一一个公共成员,是最新一次计算结果的
16进制ASCII表示.
*/
public String digestHexStr;
/* digest,是最新一次计算结果的2进制内部表示,表示128bit的MD5值.
*/
private byte[] digest = new byte[16];
/*
getMD5ofStr是类MD5最主要的公共方法,入口参数是你想要进行MD5变换的字符串
返回的是变换完的结果,这个结果是从公共成员digestHexStr取得的.
*/
public String getMD5ofStr(String inbuf) {
md5Init();
md5Update(inbuf.getBytes(), inbuf.length());
md5Final();
digestHexStr = "";
for (int i = 0; i < 16; i++) {
digestHexStr += byteHEX(digest[i]);
}
return digestHexStr;
}
// 这是MD5这个类的标准构造函数,JavaBean要求有一个public的并且没有参数的构造函数
public MD5() {
md5Init();
return;
}
reference:
1.
http://mkchen.bokee.com/2353383.htmlMD5加密
2.
http://school.cfan.com.cn/pro/java/2007-08-29/1188351839d99193.shtml在JSP中如何实现MD5加密
3.
http://baike.baidu.com/view/7636.htm百度百科md5
4.
http://www.520hack.com/Article/Text2/crackjc/200905/14403.html教你如何轻松解密Md5密码
private static void Md5(String plainText ) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(plainText.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if(i<0) i+= 256;
if(i<16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
System.out.println("result: " + buf.toString());//32位的加密
System.out.println("result: " + buf.toString().substring(8,24));//16位的加密
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
经验证没有问题可用.
分享到:
相关推荐
是jsp的MD5加密包括JSP程序和JAVA程序
MD5(Message-Digest Algorithm 5 信息摘要算法),是一种不可逆的加密算法,主要被应用于确保信息传输的完整一致性与系统登录认证这两方面。
NULL 博文链接:https://eagle0824.iteye.com/blog/745823
四种语言实现MD5加密(JS,JSP,JAVA,ASP及juqery.MD5),代码可以直接使用。 四种语言实现MD5加密(JS,JSP,JAVA,ASP及juqery.MD5),代码可以直接使用。
主要介绍了在JSP中如何实现MD5加密的方法,较为详细的分析了JSP采用MD5加密的功能、特点及实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下.
找了好久,在IBM网站上找到的,经过了我的修改和编译,在tomcat7.0、JDK1.6下可用的javabean。用法可参考我的博客。http://blog.csdn.net/lwprain。
mysql+myeclipse,有验证码,有md5加密,是不错的资源你值得下载
jsp md5 加密算法 实现加密 1
AES使用java和js互相加解密及前端MD5加密,java后台加密前端js解密,或前端js加密,后端java解密,
MD5加密算法(JSP)版
可以在jsp或Javabean中连接数据库实现给数据库里的密码等进行MD5加密
相当好用,拿来就可以使用了 里面附上了jsp 和 java class 文件 你也可以把它修改后重新编译
md5 MD5 加密 实例 简单md5 MD5 加密 实例 简单
jsp的MD5加密.doc,jsp的MD5加密.doc
在java中或是在jsp中实现对字符串的加密。