MD5Utils

功能:

  • getMD5 獲取文件或字符串的MD5值
源碼:

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * @author Dotions 2015年7月1日 上午11:50:29
 */
public class MD5Utils {
    
    private static final String ENCODING_ALGORITHM = "MD5";

    private static byte[] md5sum(byte[] data) {
        try {
            MessageDigest mdTemp = MessageDigest.getInstance(ENCODING_ALGORITHM);
            mdTemp.update(data);
            return mdTemp.digest();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
            return null;
        }
    }

    /* 將data數(shù)組轉(zhuǎn)換為16進(jìn)制字符串 */
    private static String convertToHexString(byte data[]) {
        StringBuffer strBuffer = new StringBuffer();
        for (int i = 0; i < data.length; i++) {
            strBuffer.append(Integer.toHexString(0xff & data[i]));
        }
        return strBuffer.toString();
    }

    private static byte[] md5sum(File file) {
        InputStream fis = null;
        byte[] buffer = new byte[1024];
        int numRead = 0;
        MessageDigest md5;
        try {
            fis = new FileInputStream(file);
            md5 = MessageDigest.getInstance(ENCODING_ALGORITHM);
            while ((numRead = fis.read(buffer)) > 0) {
                md5.update(buffer, 0, numRead);
            }
            return md5.digest();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        } finally {
            if (fis != null) {
                try {
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    /**
     * 獲取字符串的MD5值
     */
    public static String getMD5(String str) {
        if (str != null && str.length() > 0)
            return new String(convertToHexString(md5sum(str.getBytes())));
        else
            return null;
    }

    /**
     * 獲取文件的MD5值
     */
    public static String getMD5(File file) {
        if (file != null && file.exists())
            return new String(convertToHexString(md5sum(file)));
        else
            return null;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末秉颗,一起剝皮案震驚了整個(gè)濱河市熊榛,隨后出現(xiàn)的幾起案子但金,更是在濱河造成了極大的恐慌,老刑警劉巖簸搞,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怜瞒,死亡現(xiàn)場(chǎng)離奇詭異糟需,居然都是意外死亡忘晤,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)惑惶,“玉大人煮盼,你說(shuō)我怎么就攤上這事〈郏” “怎么了孕似?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)刮刑。 經(jīng)常有香客問(wèn)我喉祭,道長(zhǎng),這世上最難降的妖魔是什么雷绢? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任泛烙,我火速辦了婚禮,結(jié)果婚禮上翘紊,老公的妹妹穿的比我還像新娘蔽氨。我一直安慰自己,他們只是感情好帆疟,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布鹉究。 她就那樣靜靜地躺著,像睡著了一般踪宠。 火紅的嫁衣襯著肌膚如雪自赔。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,727評(píng)論 1 305
  • 那天柳琢,我揣著相機(jī)與錄音绍妨,去河邊找鬼。 笑死柬脸,一個(gè)胖子當(dāng)著我的面吹牛他去,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播倒堕,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼灾测,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了垦巴?” 一聲冷哼從身側(cè)響起媳搪,我...
    開(kāi)封第一講書(shū)人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎魂那,沒(méi)想到半個(gè)月后蛾号,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡涯雅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了展运。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片活逆。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡精刷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蔗候,到底是詐尸還是另有隱情怒允,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布锈遥,位于F島的核電站纫事,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏所灸。R本人自食惡果不足惜丽惶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望爬立。 院中可真熱鬧钾唬,春花似錦、人聲如沸侠驯。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)吟策。三九已至儒士,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間檩坚,已是汗流浹背乍桂。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留效床,地道東北人睹酌。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像剩檀,于是被迫代替她去往敵國(guó)和親憋沿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,182評(píng)論 25 707
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理沪猴,服務(wù)發(fā)現(xiàn)辐啄,斷路器,智...
    卡卡羅2017閱讀 134,667評(píng)論 18 139
  • 一运嗜、定義策略類(lèi)場(chǎng)景:文章的修改和刪除操作 二壶辜、編寫(xiě)策略類(lèi) 三、注冊(cè)策略類(lèi)和模型關(guān)聯(lián)AuthServiceProvi...
    小慕先森閱讀 223評(píng)論 0 0
  • 今天下午岭参,我提前兩個(gè)小時(shí)下班啦反惕。一般情況下這是要記早退扣工資的,但是我今天沒(méi)有演侯。原因是人事部的同事給我開(kāi)了個(gè)綠色通...
    清麗傾力閱讀 879評(píng)論 0 46