winston 发表于 2011-12-21 11:26:29

MD5加密算法---简析 |jinzi12345678

MD5加密算法由于其具有较好的安全性,加之商业也可以免费使用该算法,因此该加密算法被广泛使用,md5算法主要运用在数字签名、文件完整性验证以及口令加密等方面。
在一般情况下MD5这种加密算法是比较安全的。2004年山东大学王小云教授破解了这种一直被认为很安全的加密算法。从此MD5不在安全……但这种算法,不能就这么“昙花一现"
还是有必要去学习一下的……
写了一个简单的例子:
==============================
package cn.edu.bzu;

import java.security.*;

//使用MD5加密算法对超级管理员信息进行加密

public class SimpleEncryption {
public final static String MD5(String s) {
    try {
             byte[] btInput = s.getBytes();
             MessageDigest mdInst = MessageDigest.getInstance("MD5");
             mdInst.update(btInput);
             byte[] md = mdInst.digest();
             StringBuffer sb = new StringBuffer();
             for (int i = 0; i < md.length; i++) {
              int val = ((int) md) & 0xff;
              if (val < 16)
             sb.append("0");
              sb.append(Integer.toHexString(val));
             }
             return sb.toString();
          }catch (Exception e) {
            return s;                        //加密失败返回源字符串
    }
}
        public static void main(String args[]){
                        String s[]={"小金","男","我是程序员"};
                        for(int i=0;i<s.length;i++){
                                System.out.println(MD5(s));
                        }
               
        }

}最后结果:
18b1d50501e154c5b0665ada4dea5fa51d2efed5ab3948269942da329d79b2124086617ffd9818e87bb4f59413add9c7
=====================
这是一种不可逆算法。
再次对数据进行验证的时候,不能说事解密。只能说是重新再把数据加密一下,得到结果在和早期加密后的结果进行比对……
页: [1]
查看完整版本: MD5加密算法---简析 |jinzi12345678