java的md5加密算法代碼

jopen 8年前發布 | 38K 次閱讀 加密/解密軟件包

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.security.MessageDigest;
public final class Md5Util {

private static final char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c',
        'd', 'e', 'f'};

public static String encode(File file) {
    FileInputStream in = null;
    MessageDigest md5 = null;
    try {
        in = new FileInputStream(file);
        FileChannel ch = in.getChannel();
        MappedByteBuffer byteBuffer = ch.map(FileChannel.MapMode.READ_ONLY, 0, file.length());
        md5 = MessageDigest.getInstance("MD5");
        md5.update(byteBuffer);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return toHex(md5.digest());
}
public static String encode(String arg) {
    if (arg == null) {
        arg = "";
    }
    MessageDigest md5 = null;
    try {
        md5 = MessageDigest.getInstance("MD5");
        md5.update(arg.getBytes("UTF-8"));
    } catch (Exception e) {
        e.printStackTrace();
    }
    return toHex(md5.digest());
}
private static String toHex(byte[] bytes) {
    StringBuffer str = new StringBuffer(32);
    for (byte b : bytes) {
        str.append(hexDigits[(b & 0xf0) >> 4]);
        str.append(hexDigits[(b & 0x0f)]);
    }
    return str.toString();
}

}</pre>

來自: http://blog.csdn.net//u011067360/article/details/24417387

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!