数据加载中……
java MD5加密简单实现
Edited by DingDangXiaoMa
java MD5加密简单实现:

源码如下,并有注释:

package com.zh.test.util;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
* 加密类.对输入的字符串进行加密.
*
* @author Administrator
*
*/
public class MyEncrypt {
        /**
         * 对字符串进行加密处理.用到的算法是JDK 1.5中的 MD5算法 . MD5是一个不可逆的算法.
         *
         * @param toEncrypt
         * @return
         * @throws Exception
         */
        public static String encrypt(String toEncrypt) throws Exception {
                String inStr = toEncrypt;
                MessageDigest md = null;
                String out = null;
                System.out.println("转变之前的长度: " + inStr.getBytes().length);
                try {
                        md = MessageDigest.getInstance("MD5");
                        byte[] digest = md.digest(inStr.getBytes());
                        out = byte2hex(digest);
                } catch (NoSuchAlgorithmException e) {
                        e.printStackTrace();
                        throw e;
                }

                return out;
        }

        /**
         * 把二进制数组转换成十六进制.
         *
         * @param b
         * @return
         */
        private static String byte2hex(byte[] b) {
                System.out.println("数组长度; " + b.length);
                String hs = "";
                String stmp = "";
                for (int n = 0; n < b.length; n++) {
                        stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));
                        if (stmp.length() == 1) {
                                hs = hs + "0" + stmp;
                        } else {
                                hs = hs + stmp;
                        }
                }
                return hs.toUpperCase();
        }

        /**
         * 对加密算法进行测试.
         *
         * @param args
         *            参数
         * @throws Exception
         *             异常处理.
         */
        public static void main(String[] args) throws Exception {
                String toEncrypt = "123456";
                String toEncrypt2 = "aaa1112您好好`11887444....---00022";
                String outString = MyEncrypt.encrypt(toEncrypt2);
                System.out.println(outString);
                System.out.println("2C1835B7872CAB44D5D87312B85D829A".length());

        }
}

以上部分是对MD5算法的简单实现.网上也有很多这样的资料,谁有兴趣,可以找更多的资料,
从网上看,说MD5是一个不可逆的运算,也不知道是不是这样?
可以参考网站:http://www.moon-soft.com/doc/2624.htm

posted on 2008-04-18 14:17 叮当小马 阅读(227) 评论(0)  编辑  收藏 所属分类: Encryption


只有注册用户登录后才能发表评论。


网站导航: