詳解commons-codec maven插件

一、概述

Apache Commons Codec是在基於Java的開放源代碼的編解碼庫。它提供了多個常見編解碼方法和 Hashing 的實現,包括Base64MD5,SHA-1,SHA-256等加密算法,以及其他編碼格式。

commons-codec-maven是一個使用Apache Commons Codec構建編解碼控制台應用程序的Maven插件。在Maven項目中使用此插件可以更加輕鬆地創建和運行Java編解碼程序。

二、安裝

1、Maven支持官方開箱即用的元素;

2、在pom.xml中添加如下代碼即可:

  
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>3.1.1</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.1.2</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.2.1</version>
        <configuration>
          <minimizeJar>true</minimizeJar>
          <outputFile>${outputDirectory}/${project.artifactId}-${project.version}-all.jar</outputFile>
        </configuration>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.3.0</version>
        <executions>
          <execution>
            <id>make-assembly</id>
            <goals>
              <goal>single</goal>
            </goals>
            <phase>package</phase>
            <configuration>
              <archive>
                <manifest>
                  <mainClass>${mainClass}</mainClass>
                </manifest>
              </archive>
              <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
              </descriptorRefs>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.2.0</version>
        <executions>
          <execution>
            <id>attach-javadoc</id>
            <goals>
              <goal>javadoc</goal>
            </goals>
            <configuration>
              <doclint>none</doclint>
              <failOnWarnings>false</failOnWarnings>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>3.0.0</version>
          <configuration>
              <mainClass>${mainClass}</mainClass>
          </configuration>
      </plugin>
    </plugins>
  </build>
  

三、使用

1、Base64編解碼

Base64是一種將二進制數據轉化為文本格式的編碼方式,通常用於數據傳輸。

Base64編碼:將源數據逐字節與 (11111100) 二進制進行與操作,再將得到的結果每 6 位分為 1 組,然後從高位開始依次映射成3個可打印 ASCII 字符。如果剛好遇到源數據末尾時不足四字節的情況,則用 = 補足充足。

Base64解碼:將 Base64 編碼後的字符串的每個字符按照從低位到高位的順序映射成6位二進制數,並拼湊成3個字節的形式進行解碼。如果解碼數據的結尾出現了 =,則代表解碼數據的結尾缺少了 byte 類型需要補上。

Base64編解碼代碼示例:

  
  public class Base64Demo {
    public static void main(String[] args) {
        String input = "hello world";
        byte[] inputBytes = input.getBytes(StandardCharsets.UTF_8);

        // Encode
        String encodedString = Base64.encodeBase64String(inputBytes);
        System.out.println(encodedString); // aGVsbG8gd29ybGQ=

        // Decode
        byte[] decodedBytes = Base64.decodeBase64(encodedString);
        String decodedString = new String(decodedBytes, StandardCharsets.UTF_8);
        System.out.println(decodedString); // hello world
    }
  }
  

2、MD5加密

MD5(Message-Digest Algorithm 5),是一種對任意長度的消息進行不可逆變換的算法,通常用於加密密碼等數據。

MD5算法實現過程:

1. 字符串統一轉成byte數組

2. 給byte數組補碼

3. 將補碼轉化成十六進制形式

MD5加密代碼示例:

  
  public class Md5Demo {
    public static void main(String[] args) {
        String input = "hello world";
        String md5Hex = DigestUtils.md5Hex(input);
        System.out.println(md5Hex); // 5eb63bbbe01eeed093cb22bb8f5acdc3
    }
  }
  

3、SHA-1加密

SHA-1(Secure Hash Algorithm)是一組加密算法的名稱。該算法被廣泛用於數據完整性校驗,數據加密等領域。

SHA-1加密代碼示例:

  
  public class Sha1Demo {
    public static void main(String[] args) {
        String input = "hello world";
        String sha1Hex = DigestUtils.sha1Hex(input);
        System.out.println(sha1Hex); // 2ef7bde608ce5404e97d5f042f95f89f1c232871
    }
  }
  

四、總結

通過本文的介紹,我們可以看到,通過使用commons-codec-maven插件,我們可以輕鬆地構建和運行Java編解碼程序,並且可以使用Base64、MD5、SHA-1等多種常見編解碼方法和哈希的實現。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/297645.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-28 12:16
下一篇 2024-12-28 12:16

相關推薦

  • Codemaid插件——讓你的代碼優美整潔

    你是否曾為了混雜在代碼里的冗餘空格、重複代碼而感到煩惱?你是否曾因為代碼缺少注釋而陷入困境?為了解決這些問題,今天我要為大家推薦一款Visual Studio擴展插件——Codem…

    編程 2025-04-28
  • Kong 使用第三方的go插件

    本文將針對Kong使用第三方的go插件進行詳細闡述。首先,我們解答下標題的問題:如何使用第三方的go插件?我們可以通過編寫插件來達到此目的。 一、插件架構介紹 Kong的插件系統采…

    編程 2025-04-28
  • 按鍵精靈Python插件使用指南

    本篇文章將從安裝、基礎語法使用、實戰案例以及常用問題四個方面介紹按鍵精靈Python插件的使用方法。 一、安裝 安裝按鍵精靈Python插件非常簡單,只需在cmd命令行中輸入以下代…

    編程 2025-04-27
  • 如何在VS中安裝插件

    在VS中安裝插件可以幫助我們更好地編寫代碼,提高開發效率。以下是詳細的安裝教程。 一、獲取插件 首先,我們需要獲取要安裝的插件。可以在VS的插件管理界面(Tools -> E…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁盤中。在執行sync之前,所有的文件系統更新將不會立即寫入磁盤,而是先緩存在內存…

    編程 2025-04-25
  • 神經網絡代碼詳解

    神經網絡作為一種人工智能技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網絡的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網絡模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • C語言貪吃蛇詳解

    一、數據結構和算法 C語言貪吃蛇主要運用了以下數據結構和算法: 1. 鏈表 typedef struct body { int x; int y; struct body *nex…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web服務器。nginx是一個高性能的反向代理web服務器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25
  • MPU6050工作原理詳解

    一、什麼是MPU6050 MPU6050是一種六軸慣性傳感器,能夠同時測量加速度和角速度。它由三個傳感器組成:一個三軸加速度計和一個三軸陀螺儀。這個組合提供了非常精細的姿態解算,其…

    編程 2025-04-25

發表回復

登錄後才能評論