JAva実装のMD 5要約アルゴリズムの完全な例

2986 ワード

この例ではjava実装のMD 5サマリーアルゴリズムについて説明します.皆さんの参考にしてください.具体的には以下の通りです.

package com.soufun.com;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
 * @author WHD
 */
public class MD5Test {
  // MD5     
  public static void main(String[] args) throws NoSuchAlgorithmException,
      UnsupportedEncodingException {
    String str = "hellomd      ";
    System.out.println("   " + str);
    System.out.println("    " + MD5Test.afterMD5(str));
    String digest = MD5Test.afterMD5(str);
    System.out.println(digest.equals(MD5Test.afterMD5(str)));
  }
  public static String afterMD5(String str) throws NoSuchAlgorithmException,
      UnsupportedEncodingException {
    //   MD5     ,     SHA    
    MessageDigest md5 = MessageDigest.getInstance("MD5");
    //                    
    byte[] bytes = str.getBytes("UTF-8");
    //   md5       ,         
    md5.update(bytes);
    byte[] md5encode = md5.digest();
    StringBuffer buffer = new StringBuffer();
    for (int i = 0; i < md5encode.length; i++) {
      //   &0xff   24  ,     8  
      int val = ((int) md5encode[i]) & 0xff;
      if (val < 16) {
        buffer.append("0");
      }
      //      (   16)                       。
      buffer.append(Integer.toHexString(val));
    }
    return buffer.toString();
  }
}


使用org.apache.commons.codec.digest.DigestUtilsorg.apache.commons.codec.digest.DigestUtilsはmd 5暗号化を実現する
mavenでの構成:


  commons-codec
  commons-codec
  1.4



ここで、1.2バージョンと1.4バージョンの違いは大きい.1.4には多くの方法が拡張されているからだ.具体的なコードは以下の通りです.

public static String afterMd5(String str){
      try {
      String md5 = DigestUtils.md5Hex(str.getBytes("UTF-8"));
      return md5;
    } catch (UnsupportedEncodingException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
      return null;
}


PS:暗号解読に興味のある方は、当駅のオンラインツールも参考にしてください.
パスワードセキュリティのオンライン検出:http://tools.jb51.net/password/my_password_safe
高強度パスワードジェネレータ:http://tools.jb51.net/password/CreateStrongPassword
迅雷、急行、サイクロンURL暗号化/復号ツール:http://tools.jb51.net/password/urlrethunder
オンラインハッシュ/ハッシュアルゴリズム暗号化ツール:http://tools.jb51.net/password/hash_encrypt
オンラインMD 5/hash/SAH-1/SAH-2/SAH-256/SAH-512/SAH-3/RIPEMD-160暗号化ツール:http://tools.jb51.net/password/hash_md5_sha
オンラインsha 1/sha 224/sha 256/sha 384/sha 512暗号化ツール:http://tools.jb51.net/password/sha_encode
本文で述べたjavaプログラム設計に役立つことを願っています.