JavaによるMD 5暗号化

4038 ワード

Java独自のMessageDigestクラスを使用すると簡単にMD 5暗号化が実現できますが、暗号化後に得られるのはbyte配列で、16進数の文字に変換する必要があります.
コードは次のとおりです.
 
package com.stepsoft.test;



import java.security.MessageDigest;



/***

 * 

 * @author Sam <br />

 *              

 *

 */

public class Encrypter {



    private static final char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5',

            '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };



    /***

     *   MD5    

     * 

     * @param text

     *            ,        

     * @return, md5  

     */

    public static String md5(String text) {

        try {

            byte[] input = text.getBytes();

            //   MD5      MessageDigest  

            MessageDigest mdInst = MessageDigest.getInstance("MD5");

            //            

            mdInst.update(input);

            //     

            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++] = HEX_DIGITS[byte0 >>> 4 & 0xf];

                str[k++] = HEX_DIGITS[byte0 & 0xf];

            }

            return new String(str);

        } catch (Exception e) {

            e.printStackTrace();

            return null;

        }

    }



}