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

Java MD5加密工具類(lèi)的方法(支持多參數(shù)輸入)

 更新時(shí)間:2024年05月10日 10:27:42   作者:小小野豬  
在實(shí)際開(kāi)發(fā)過(guò)程中,MD5加密是一種常見(jiàn)的數(shù)據(jù)安全處理手段,常用于密碼存儲(chǔ)、數(shù)據(jù)完整性校驗(yàn)等場(chǎng)景,這篇文章主要介紹了Java MD5加密工具類(lèi)(支持多參數(shù)輸入),需要的朋友可以參考下

在實(shí)際開(kāi)發(fā)過(guò)程中,MD5加密是一種常見(jiàn)的數(shù)據(jù)安全處理手段,常用于密碼存儲(chǔ)、數(shù)據(jù)完整性校驗(yàn)等場(chǎng)景。博主編寫(xiě)了一個(gè)實(shí)用的Java工具類(lèi),用于對(duì)字符串進(jìn)行MD5加密,并特別優(yōu)化以支持同時(shí)處理多個(gè)輸入字符串。

一、需求分析

        設(shè)想希望創(chuàng)建一個(gè)名為Md5Util的工具類(lèi),其中包含一個(gè)方法可以接受任意數(shù)量的字符串作為參數(shù),然后返回這些字符串連接后經(jīng)MD5加密的結(jié)果。

二、代碼實(shí)現(xiàn)

        首先,導(dǎo)入Java中用于生成MD5摘要的java.security.MessageDigest類(lèi)。以下是將要編寫(xiě)的Md5Util工具類(lèi):

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
public class Md5Util {
    /**
     * 對(duì)一組字符串進(jìn)行MD5加密,結(jié)果以16進(jìn)制形式返回
     *
     * @param inputStrs 需要進(jìn)行MD5加密的字符串?dāng)?shù)組
     * @return 經(jīng)過(guò)MD5加密后的字符串
     */
    public static String md5(String... inputStrs) {
        try {
            // 將所有輸入字符串按順序拼接成一個(gè)字符串
            StringBuilder sb = new StringBuilder();
            for (String input : inputStrs) {
                sb.append(input);
            }
            // 獲取MD5 MessageDigest實(shí)例
            MessageDigest md = MessageDigest.getInstance("MD5");
            // 使用指定的字節(jié)數(shù)組對(duì)摘要進(jìn)行更新,然后完成哈希計(jì)算
            byte[] messageDigest = md.digest(sb.toString().getBytes());
            // 將得到的字節(jié)數(shù)組轉(zhuǎn)換為16進(jìn)制表示
            return new BigInteger(1, messageDigest).toString(16);
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException("未能初始化MessageDigest實(shí)例", e);
        }
    }
}

三、代碼解析

  • md5方法中,首先通過(guò)StringBuilder將所有輸入的字符串連接起來(lái)。這樣做的原因是MD5是對(duì)輸入數(shù)據(jù)的整體進(jìn)行散列運(yùn)算,而不是分別對(duì)每個(gè)字符串進(jìn)行。
  • 然后,調(diào)用MessageDigest.getInstance("MD5")獲取MD5算法的MessageDigest實(shí)例。
  • 使用messageDigest.digest()方法對(duì)拼接后的字符串進(jìn)行MD5哈希運(yùn)算,得到的是一個(gè)字節(jié)數(shù)組。
  • 最后,利用BigInteger將MD5哈希運(yùn)算得到的字節(jié)數(shù)組轉(zhuǎn)換為16進(jìn)制字符串并返回。這是因?yàn)镸D5輸出的是128位的哈希值,通常以32個(gè)十六進(jìn)制字符的形式展示。

四、使用示例

現(xiàn)在可以這樣便捷地對(duì)多個(gè)字符串進(jìn)行MD5加密:

public static void main(String[] args) {
    String password1 = "password";
    String salt = "salt";
    String combinedMd5 = Md5Util.md5(password1, salt);
    System.out.println(combinedMd5);  // 輸出:c2e7dc5fd90f99df6e2f4ee03b5f7c6a
}

        通過(guò)這個(gè)工具類(lèi),可以方便且高效地對(duì)多個(gè)字符串進(jìn)行MD5加密操作,極大地提高了開(kāi)發(fā)效率和代碼復(fù)用性。

到此這篇關(guān)于Java MD5加密工具類(lèi)(支持多參數(shù)輸入)的文章就介紹到這了,更多相關(guān)Java MD5加密工具類(lèi)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringMVC+MyBatis分頁(yè)(最新)

    SpringMVC+MyBatis分頁(yè)(最新)

    本篇文章主要介紹了SpringMVC+MyBatis分頁(yè),具有一定的參考價(jià)值,有興趣的可以了解一下。
    2016-12-12
  • SpringBoot?如何使用sharding?jdbc進(jìn)行分庫(kù)分表

    SpringBoot?如何使用sharding?jdbc進(jìn)行分庫(kù)分表

    這篇文章主要介紹了SpringBoot?如何使用sharding?jdbc進(jìn)行分庫(kù)分表,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java實(shí)現(xiàn)PDF批量處理之合并、拆分、加水印的技術(shù)方案與實(shí)踐

    Java實(shí)現(xiàn)PDF批量處理之合并、拆分、加水印的技術(shù)方案與實(shí)踐

    在日常開(kāi)發(fā)中,PDF文檔處理是一個(gè)高頻需求,無(wú)論是合同管理系統(tǒng)需要合并多份PDF,還是報(bào)表系統(tǒng)需要按頁(yè)拆分,亦或是給機(jī)密文檔添加水印,都需要一套可靠的PDF處理方案,本文將分享基于Java技術(shù)棧實(shí)現(xiàn)PDF批量處理的核心思路與代碼實(shí)踐,需要的朋友可以參考下
    2026-02-02
  • SpringBoot防止大量請(qǐng)求攻擊的實(shí)現(xiàn)

    SpringBoot防止大量請(qǐng)求攻擊的實(shí)現(xiàn)

    在有些特定的時(shí)候需要加上IP訪問(wèn)時(shí)間限制,防止一個(gè)IP多次訪問(wèn)請(qǐng)求,本文主要介紹了SpringBoot防止大量請(qǐng)求攻擊的實(shí)現(xiàn),感興趣的可以了解一下
    2021-11-11
  • Java代碼執(zhí)行shell命令的實(shí)現(xiàn)

    Java代碼執(zhí)行shell命令的實(shí)現(xiàn)

    這篇文章主要介紹了Java代碼執(zhí)行shell命令的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Mybatis中輸入輸出映射與動(dòng)態(tài)Sql圖文詳解

    Mybatis中輸入輸出映射與動(dòng)態(tài)Sql圖文詳解

    這篇文章主要給大家介紹了關(guān)于Mybatis中輸入輸出映射與動(dòng)態(tài)Sql的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • 使用Java實(shí)現(xiàn)查找并移除字符串中的Emoji

    使用Java實(shí)現(xiàn)查找并移除字符串中的Emoji

    Emoji 實(shí)際上是 UTF-8 (Unicode) 字符集上的特殊字符,這篇文章主要介紹了如何使用Java實(shí)現(xiàn)查找并移除字符串中的Emoji,感興趣的可以了解下
    2024-03-03
  • Springboot微服務(wù)打包Docker鏡像流程解析

    Springboot微服務(wù)打包Docker鏡像流程解析

    這篇文章主要介紹了Springboot微服務(wù)打包Docker鏡像流程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 基于@JsonProperty的使用說(shuō)明

    基于@JsonProperty的使用說(shuō)明

    這篇文章主要介紹了基于@JsonProperty的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Java常見(jiàn)的鎖策略圖文詳解(附實(shí)例代碼)

    Java常見(jiàn)的鎖策略圖文詳解(附實(shí)例代碼)

    Java中的鎖方法是指通過(guò)特定的機(jī)制來(lái)確保多線程環(huán)境下對(duì)共享資源的互斥訪問(wèn),以避免數(shù)據(jù)不一致和競(jìng)態(tài)條件,這篇文章主要介紹了Java常見(jiàn)鎖策略的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-10-10

最新評(píng)論

娄底市| 崇仁县| 都安| 鲁甸县| 绍兴县| 鄂托克前旗| 青浦区| 方山县| 孟村| 石屏县| 海淀区| 铜川市| 成安县| 城固县| 苍山县| 阳西县| 成都市| 金湖县| 泽普县| 汶上县| 宜城市| 连南| 盐亭县| 新巴尔虎左旗| 涿鹿县| 双峰县| 皮山县| 蒙阴县| 西宁市| 庆云县| 蓬溪县| 高平市| 阳谷县| 潼南县| 红桥区| 嘉兴市| 永川市| 深水埗区| 玉溪市| 新竹市| 和林格尔县|