最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中的信息摘要算法MessageDigest類用法詳解

 更新時間:2024年01月16日 09:01:29   作者:jiayoudangdang  
這篇文章主要介紹了Java中的信息摘要算法MessageDigest類用法詳解,java.security.MessageDigest類為應(yīng)用程序提供信息摘要算法的功能,如MD5或SHA-1或SHA-256算法,信息摘要是安全的單向哈希函數(shù),它接收任意大小的數(shù)據(jù),并輸出固定長度的哈希值,需要的朋友可以參考下

MessageDigest 是什么?

java.security.MessageDigest類為應(yīng)用程序提供信息摘要算法的功能,如 MD5 或 SHA-1或SHA-256 算法。

信息摘要是安全的單向哈希函數(shù),它接收任意大小的數(shù)據(jù),并輸出固定長度的哈希值。

MessageDigest 對象調(diào)用getInstance初始化,使用 update 方法處理數(shù)據(jù)。任何時候都可以調(diào)用 reset 方法重置摘要。一旦所有需要更新的數(shù)據(jù)都已經(jīng)被更新了,應(yīng)該調(diào)用 digest 方法之一完成哈希計算。

對于給定數(shù)量的更新數(shù)據(jù),digest 方法只能被調(diào)用一次。在調(diào)用 digest 之后,MessageDigest 對象被重新設(shè)置成其初始狀態(tài)。

常用的方法

兩種getInstance

  • public static MessageDigest getInstance(String algorithm) throws NoSuchAlgorithmException
  • 返回實現(xiàn)指定摘要算法的 MessageDigest 對象。
  • algorithm - 所請求算法的名稱
  • public static MessageDigest getInstance(String algorithm,  String provider) throws NoSuchAlgorithmException, NoSuchProviderException
  • 返回實現(xiàn)指定摘要算法的 MessageDigest 對象。
  • algorithm - 所請求算法的名稱
  • provider - 提供者的名稱。

update

  • public void update(byte[] input)
  • 使用指定的 byte 數(shù)組更新摘要。

digest

  • public byte[] digest()
  • 通過執(zhí)行諸如填充之類的最終操作完成哈希計算。在調(diào)用此方法之后,摘要被重置。

isEqual

  • public static boolean isEqual(byte[] digesta, byte[] digestb)
  • 比較兩個摘要的相等性。做簡單的字節(jié)比較。 
  • 注意:Provider可以通過 java.security.Security.getProviders()
  • 方法獲取已注冊提供者列表。比較常用的有“SUN”

SUN提供的常用的算法名稱有

  • MD2
  • MD5
  • SHA-1
  • SHA-256
  • SHA-384
  • SHA-512

使用的例子

static byte[] md5(String key) {
	MessageDigest md;
	try {
		// 返回實現(xiàn)指定摘要算法的 MessageDigest 對象
		md = MessageDigest.getInstance("MD5");
		// getBytes(String charsetName): 使用指定的字符集將字符串編碼為 byte 序列,并將結(jié)果存儲到一個新的 byte 數(shù)組中
		byte[] bytes = key.getBytes(StandardCharsets.UTF_8);
		// 使用指定的 byte 數(shù)組更新摘要
		md.update(bytes);
	} catch (NoSuchAlgorithmException e) { //NoSuchAlgorithmException: 當(dāng)請求特定的加密算法但在環(huán)境中不可用時,將拋出此異常
		// 拋出非法狀態(tài)異常
		throw new IllegalStateException(e.getMessage(), e);
	}
	// 通過執(zhí)行諸如填充之類的最終操作完成哈希計算。在調(diào)用此方法之后,摘要被重置
	return md.digest();
}

到此這篇關(guān)于Java中的信息摘要算法MessageDigest類用法詳解的文章就介紹到這了,更多相關(guān)信息摘要算法MessageDigest類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java線程間通訊的幾種方法小結(jié)

    Java線程間通訊的幾種方法小結(jié)

    線程通信可以用于控制并發(fā)線程的數(shù)量,本文主要介紹了Java線程間通訊的幾種方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • MyEclipse 2016 CI 4新增BootStrap模板

    MyEclipse 2016 CI 4新增BootStrap模板

    MyEclipse2016是一款全球使用最為廣泛的企業(yè)級開發(fā)環(huán)境程序,這篇文章主要介紹了MyEclipse 2016 CI 4新增BootStrap模板的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • idea插件篇之java內(nèi)存分析工具(JProfiler)的使用

    idea插件篇之java內(nèi)存分析工具(JProfiler)的使用

    這篇文章主要介紹了idea插件篇之java內(nèi)存分析工具(JProfiler),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • docker編寫java的jar完整步驟記錄

    docker編寫java的jar完整步驟記錄

    在平常的開發(fā)工作中,我們經(jīng)常需要部署項目,開發(fā)測試完成后,最關(guān)鍵的一步就是部署,這篇文章主要介紹了docker編寫java的jar的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-09-09
  • SpringBoot整合DeepSeek技術(shù)指南(實際應(yīng)用場景)

    SpringBoot整合DeepSeek技術(shù)指南(實際應(yīng)用場景)

    這篇文章主要介紹了SpringBoot整合DeepSeek技術(shù)指南,本文通過實際應(yīng)用場景模擬給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2025-04-04
  • Java代碼規(guī)范與質(zhì)量檢測插件SonarLint的使用

    Java代碼規(guī)范與質(zhì)量檢測插件SonarLint的使用

    本文主要介紹了Java代碼規(guī)范與質(zhì)量檢測插件SonarLint的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • java ThreadGroup的作用及方法詳解

    java ThreadGroup的作用及方法詳解

    這篇文章主要介紹了java ThreadGroup的作用及方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java之泛型在使用過程全解析

    Java之泛型在使用過程全解析

    這篇文章介紹了泛型的基本概念及其在Java中的應(yīng)用,泛型通過統(tǒng)一類型參數(shù)消除了強(qiáng)轉(zhuǎn)問題,廣泛應(yīng)用于集合類(如List、Set、Map)中,確保元素類型一致,文章還詳細(xì)解釋了泛型類、泛型方法、子類繼承、類型限制(上限和下限)、泛型擦除以及橋接方法等關(guān)鍵概念
    2025-09-09
  • 帶你入門java雪花算法原理

    帶你入門java雪花算法原理

    SnowFlake 算法,是 Twitter 開源的分布式 id 生成算法。其核心思想就是:使用一個 64 bit 的 long 型的數(shù)字作為全局唯一 id。在分布式系統(tǒng)中的應(yīng)用十分廣泛,且ID 引入了時間戳,基本上保持自增的
    2021-06-06
  • java單鏈表實現(xiàn)書籍管理系統(tǒng)

    java單鏈表實現(xiàn)書籍管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java單鏈表實現(xiàn)書籍管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11

最新評論

阳信县| 阿图什市| 独山县| 平利县| 大石桥市| 聂荣县| 武清区| 铜鼓县| 榕江县| 米泉市| 林甸县| 紫阳县| 莎车县| 临海市| 金阳县| 扎囊县| 雅江县| 汉寿县| 临沭县| 大英县| 永兴县| 上犹县| 星子县| 潢川县| 博兴县| 元氏县| 清远市| 金昌市| 无为县| 涟水县| 调兵山市| 高碑店市| 依兰县| 林周县| 奉新县| 潼关县| 清镇市| 龙游县| 邵阳市| 西充县| 东乡族自治县|