亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Java中實現MAC消息摘要算法

發布時間:2021-05-11 16:38:49 來源:億速云 閱讀:121 作者:Leah 欄目:編程語言

如何在Java中實現MAC消息摘要算法?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

Java可以用來干什么

Java主要應用于:1. web開發;2. Android開發;3. 客戶端開發;4. 網頁開發;5. 企業級應用開發;6. Java大數據開發;7.游戲開發等。

一 介紹

MAC:Message Authentication Code
HMAC:keyed-Hash Message Authencication Code,含有密鑰的散列函數算法。
融合MD、SHA
MD系列:HmacMD2、HmacMD4、HmacMD5
SHA系列:HmacSHA1、HmacSHA224、HmacSHA256、HmacSHA384、HmacSHA512
應用:SecureCRT

二 參數說明

如何在Java中實現MAC消息摘要算法

三 代碼實現

package com.imooc.security.hmac;
import javax.crypto.KeyGenerator;
import javax.crypto.Mac;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Hex;
import org.bouncycastle.crypto.digests.MD5Digest;
import org.bouncycastle.crypto.macs.HMac;
import org.bouncycastle.crypto.params.KeyParameter;
public class ImoocHmac {
    private static String src = "cakin24 security hmac";
    public static void main(String[] args) {
         jdkHmacMD5();
         bcHmacMD5();
    }
    public static void jdkHmacMD5() {
        try {
            KeyGenerator keyGenerator = KeyGenerator.getInstance("HmacMD5");//初始化KeyGenerator
            SecretKey secretKey = keyGenerator.generateKey();//產生密鑰
//            byte[] key = secretKey.getEncoded();//獲得密鑰
            byte[] key = Hex.decodeHex(new char[] {'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a'});
            SecretKey restoreSecretKey = new SecretKeySpec(key, "HmacMD5");//還原密鑰
            Mac mac = Mac.getInstance(restoreSecretKey.getAlgorithm());//實例化MAC
            mac.init(restoreSecretKey);//初始化Mac
            byte[] hmacMD5Bytes = mac.doFinal(src.getBytes());//執行摘要
            System.out.println("jdk hmacMD5 : " + Hex.encodeHexString(hmacMD5Bytes));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void bcHmacMD5() {
        HMac hmac = new HMac(new MD5Digest());
        hmac.init(new KeyParameter(org.bouncycastle.util.encoders.Hex.decode("aaaaaaaaaa")));
        hmac.update(src.getBytes(), 0, src.getBytes().length);
        byte[] hmacMD5Bytes = new byte[hmac.getMacSize()];//執行摘要
        hmac.doFinal(hmacMD5Bytes, 0);
        System.out.println("bc hmacMD5 : " + org.bouncycastle.util.encoders.Hex.toHexString(hmacMD5Bytes));
    }
}

四 實現效果

jdk hmacMD5 : d23aa029b2bacdd3979d10f0931f9af6
bc hmacMD5 : d23aa029b2bacdd3979d10f0931f9af6

五 應用場景

如何在Java中實現MAC消息摘要算法

看完上述內容,你們掌握如何在Java中實現MAC消息摘要算法的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

枣庄市| 融水| 寿宁县| 同江市| 银川市| 甘南县| 江西省| 任丘市| 九江县| 天津市| 成都市| 嘉荫县| 凤山县| 朔州市| 肥城市| 卢龙县| 阿图什市| 凌云县| 阿勒泰市| 东丰县| 宿迁市| 胶南市| 英德市| 永清县| 泰来县| 治县。| 津市市| 庄浪县| 龙陵县| 清丰县| 穆棱市| 城步| 湖南省| 辽中县| 巴里| 连南| 灌南县| 芷江| 孝感市| 日喀则市| 苏尼特右旗|