java加密解密技术(2) 单向加密MD5

来源:互联网 发布:软件协会会员牌匾 编辑:程序博客网 时间:2024/06/09 17:34

单向加密MD5 SHA算法用于消息摘要,验证文件的完整性,防篡改。

import java.security.MessageDigest;import org.apache.commons.codec.digest.DigestUtils;public class MD5Util {    public final static String MD5(String s) {        char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};               try {            byte[] btInput = s.getBytes();            // 获得MD5摘要算法的 MessageDigest 对象            MessageDigest mdInst = MessageDigest.getInstance("MD5");            // 使用指定的字节更新摘要            mdInst.update(btInput);            // 获得密文            byte[] md = mdInst.digest();            // 把密文转换成十六进制的字符串形式            int j = md.length;            char str[] = new char[j * 2];            int k = 0;            for (int i = 0; i < j; i++) {                byte byte0 = md[i];                str[k++] = hexDigits[byte0 >>> 4 & 0xf];                str[k++] = hexDigits[byte0 & 0xf];            }            return new String(str);        } catch (Exception e) {            e.printStackTrace();            return null;        }    }    public static void main(String[] args) {        System.out.println(MD5Util.MD5("20121221"));        System.out.println(MD5Util.MD5("加密"));        try {MessageDigest md= MessageDigest.getInstance("MD5");System.out.println("MessageDigest==="+md.digest("20121221".getBytes()));System.out.println("DigestUtils--md5Hex==="+DigestUtils.md5Hex("20121221"));System.out.println("DigestUtils--sha256Hex==="+DigestUtils.sha256Hex("20121221"));} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}    }}

/*
MessageDigest md= MessageDigest.getInstance("MD5");
byte[] b= md.digest("20121221".getBytes());
System.out.println("MessageDigest==="+b);
System.out.println(Hex.encodeHexString(b));
*/

0 0
原创粉丝点击