`

在JSP中如何实现MD5加密

阅读更多
转摘自: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加密的javaBean

    总结一下,这个资源提供了一个在JSP中实现MD5加密功能的JavaBean,适用于Tomcat 7.0和JDK 1.6环境,通过作者提供的博客链接,用户可以获取使用教程和进一步的解释。这个JavaBean是解决JSP项目中用户密码安全存储问题...

    jsp,Javascript MD5加密 实现

    本话题主要探讨如何在JSP(JavaServer Pages)和JavaScript中实现MD5加密。 首先,我们要理解MD5的基本原理。MD5算法接收一个输入(可以是任意长度的字符串),通过一系列复杂的数学运算,将其转化为128位的二进制...

    jsp网页中用户登陆密码的MD5加密

    在jsp网页中实现MD5加密可以使用JavaBean来实现。MD5类实现了RSA Data Security公司的MD5 message-digest算法。该类中定义了一些静态final变量,用于存储MD5算法中的矩阵值。这些矩阵值用于计算MD5哈希值。 MD5类还...

    jsp+md5 加密原文件

    在JSP中实现MD5加密的基本步骤如下: 1. 引入`java.security.MessageDigest`库。 2. 实例化`MessageDigest`对象,并指定算法为MD5。 3. 使用`digest()`方法对字符串进行哈希计算,这会返回一个字节数组。 4. 将字节...

    在JSP中如何实现MD5加密的方法

    在JSP中实现MD5加密方法涉及了多个方面的知识点,包括JSP基础、MD5加密技术原理以及Java编程技巧。下面将详细介绍这些知识点。 首先,JSP(Java Server Pages)是一种动态网页技术,允许开发者将Java代码嵌入到HTML...

    jsp下面md5加密(jsp md5)

    总之,这个压缩包提供的资源可以帮助开发者快速地在JSP环境中实现MD5加密功能,无论是直接使用还是进行定制,都能提高开发效率。但要注意,对于存储用户密码等重要信息,应考虑使用更为安全的加密策略。

    MD5加密算法(JSP)

    以下是关于MD5加密算法及其在JSP中应用的详细知识点: 1. **MD5原理**: - MD5算法由Ronald Rivest在1991年设计,它将输入信息经过多次迭代运算后生成一个固定长度的摘要。这个摘要对输入信息极其敏感,微小的变动...

    servlet+jsp实现的有验证码和MD5加密的登陆

    本项目"Servlet+jsp实现的有验证码和MD5加密的登陆"是一个典型的Web登录系统,它结合了数据库操作、前端展示和安全机制,具体涉及以下几个关键知识点: 1. **Servlet**:Servlet是Java编写服务器端应用程序的接口,...

    jsp md5加密源代码附清晰注释

    在JSP(JavaServer Pages)中,我们也可以实现MD5加密。 在JSP中使用MD5加密通常涉及以下步骤: 1. **引入必要的库**:JSP默认并没有内置MD5加密功能,因此我们需要引入`java.security.MessageDigest`类来完成MD5...

    四种语言实现MD5加密(JS,JSP,JAVA,ASP及juqery.MD5)

    在给定的资源中,我们看到四种语言的MD5加密实现:JavaScript、JSP、Java和ASP,以及一个与jQuery相关的MD5实现。下面将分别介绍这些语言中的MD5加密方法: 1. **JavaScript**: JavaScript是一种轻量级的脚本语言...

    jsp调用MD5加密

    MD5(Message-Digest Algorithm 5 信息摘要算法),是一种不可逆的加密算法,主要被应用于确保信息传输的完整一致性与系统登录认证这两方面。

    java后台及前端js使用AES互相加解密及前端md5加密

    本主题涉及的是在Java后台与前端JavaScript之间利用AES(Advanced Encryption Standard)进行加解密,以及前端的MD5(Message-Digest Algorithm 5)加密技术。以下是关于这些知识点的详细解释: 1. **AES加密**:...

    基于JAVA技术的MD5加密算法的设计与实现

    在本案例中,使用JavaBean来封装MD5算法的实现细节,从而实现代码的模块化和复用性。具体实现方法包括: - 创建一个名为`MD5Encryptor`的JavaBean类,包含必要的属性和方法,例如`encrypt(String data)`方法用于加密...

    Jsp MD5 加密算法

    jsp md5 加密算法 实现加密 1

    jsp的MD5加密.doc

    以下是一个简单的MD5加密的Java程序,用于说明如何在JSP环境中使用MD5加密: ```java import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5Tool { // 主方法...

Global site tag (gtag.js) - Google Analytics