<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    David.Turing's blog

     

    計算HMAC

    Message Authentication Code (MAC) 是用于確信信息在傳輸過程中沒有被修改過,體現(xiàn)了信息完整性, MAC 有很多種算法,大部分算法用于簡單的場景(如文件傳輸),他們都有效,但如果用于都未曾考慮會被惡意攻擊的情況,在密碼學(xué)領(lǐng)域中,更多被應(yīng)用的是 HMAC , HMAC 更安全,因為它是基于 Key 的。 HMAC 是使用諸如 MD5,SHA-1 等散列算法構(gòu)造 MAC

    HMAC 在這樣一種場景中被應(yīng)用:

    巴赫爾、穆罕默德是為伊拉克臨時政府中不同的伊斯蘭派系,由于美國已經(jīng)在伊拉克設(shè)置了大量情報機構(gòu),他們擔心政府部內(nèi)部文件在網(wǎng)絡(luò)傳輸可能被美國情報局修改,考慮起見,巴赫爾、穆罕默德決定使用 MAC 技術(shù):

    1,? 他們商榷一個簡單的密鑰 Key1

    2,? 他們商榷一種可靠的 HMAC 算法,如 HMACSHA1

    3,? 他們每次發(fā)送政府審批報告前,都用 HMACSHA1 進行計算,并將該 hmac x1 附帶發(fā)送給對方

    4,? 對方接收到文件,將文件進行一次 HMAC 的計算,得出新的 hmac x2 ,對比 x1 x2 ,可以知道文件是否在中途被修改過。

    注意,上述的步驟如果不考慮惡意攻擊者,可以使用消息摘要,惡意攻擊者可以修改你的文件,然后重新幫你計算摘要,最后替換你的摘要:(

    ?????? 關(guān)于 HMAC 的更多標準,可以參考 RFC2104

    package ?org.dev2dev.security.test.mac;

    import ?java.io.File;
    import ?java.io.IOException;
    import ?java.security.InvalidKeyException;
    import ?java.security.NoSuchAlgorithmException;

    import ?javax.crypto.KeyGenerator;
    import ?javax.crypto.Mac;
    import ?javax.crypto.SecretKey;

    import ?org.dev2dev.common.FileUtils;

    public ? class ?TestHmac {

    ?
    /**
    ??*?
    @param ?args
    ??
    */

    ?
    public ? static ? void ?main(String[]?args)? {
    ?????
    try ? {
    ?????????
    // 首先需要生成Hmac的key,有比較多種方法,HmacSHA1,算法類型可以參考KeyGenerator算法列表?
    ??????????????// 本例子用KeyGenerator生成key,實際上,key可以保存起來,也可以被分發(fā)給其他人
    ?????????KeyGenerator?keyGen?=?KeyGenerator.getInstance("HmacMD5");?
    ?????????SecretKey?key?=?keyGen.generateKey();
    ?????????Mac?mac?
    =?Mac.getInstance(key.getAlgorithm());
    ?????????mac.init(key);
    ?????????????
    ?????????File?infile
    =new?File("c:\\1.txt");
    ?????????
    byte[]?inputbyte=null;
    ???
    try?{
    ????inputbyte?
    =?FileUtils.getBytesFromFile(infile);
    ???}
    ?catch?(IOException?e)?{
    ????e.printStackTrace();
    ???}

    ?????????
    byte[]?digest?=?mac.doFinal(inputbyte);
    ?????
    ?????????
    //?If?desired,?convert?the?digest?into?a?string
    ?????????String?HmacB64?=?new?sun.misc.BASE64Encoder().encode(digest);
    ?????????System.out.println(
    "計算的HMAC ="+ HmacB64);
    ?????}
    ? catch ?(InvalidKeyException?e)? {
    ??????e.printStackTrace();
    ?????}
    ? catch ?(NoSuchAlgorithmException?e)? {
    ??????e.printStackTrace();
    ?????}
    ?

    ?}


    }

    posted on 2006-05-21 17:05 david.turing 閱讀(1593) 評論(1)  編輯  收藏 所屬分類: BounyCastle&JCE

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(110)

    我參與的團隊

    隨筆分類(126)

    隨筆檔案(155)

    文章分類(9)

    文章檔案(19)

    相冊

    搜索

    積分與排名

    最新隨筆

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 99re6在线视频精品免费| 麻豆国产精品免费视频| 最近中文字幕电影大全免费版 | 国产精品久久亚洲不卡动漫| 成在线人免费无码高潮喷水| 亚洲高清无在码在线电影不卡 | 美女视频黄的免费视频网页| 亚洲国产天堂久久综合| 亚洲首页国产精品丝袜| 国产午夜无码精品免费看动漫 | 日本视频免费高清一本18| 国产成人精品久久亚洲| 日韩少妇内射免费播放| 好吊妞在线成人免费| 亚洲美女在线观看播放| 免费一级做a爰片久久毛片潮喷| 亚洲成a人片在线不卡一二三区| 免费黄色小视频网站| 亚洲日韩av无码中文| 成人网站免费观看| 日本亚洲免费无线码| 亚洲精品无码Av人在线观看国产| 99久久婷婷免费国产综合精品| 亚洲国产熟亚洲女视频| 亚洲AV无码专区亚洲AV伊甸园| 成全视频免费观看在线看| 亚洲专区先锋影音| 999国内精品永久免费观看| 亚洲色av性色在线观无码| 亚洲成a人片在线播放| 日韩av无码免费播放| 国产成人高清亚洲一区久久| 亚洲一区二区三区国产精品| 毛片免费观看的视频在线| 男人和女人高潮免费网站| 亚洲熟妇无码乱子AV电影| 人人揉揉香蕉大免费不卡| 日本一区二区三区在线视频观看免费 | 国产精品亚洲а∨天堂2021 | 亚洲一区二区三区香蕉| 国产精品国产自线拍免费软件|