Apache commons 之 codec 簡介和入門代碼

來源:互聯網
上載者:User

標籤:apache   java   code   原始碼   

Java JDK有一個 java.security 的 package, 提供了 MessageDigest 的編碼方式, Digest Algorithms 包括了 MD2, MD5, SHA-1, SHA-256, SHA-384, 及 SHA-512 等等;

Codec 是Commons項目中用來處理常用的編碼方法的工具類包,例如HEX、SHA1、MD5、Base64等等目前最新版本為1.4。

Base64/HEX是對稱式加密,MD5是無法復原加密,千萬要注意

一些簡單的加密範例程式碼:

package test.ffm83.commons.codec;

 

import java.io.UnsupportedEncodingException;

 

import org.apache.commons.codec.DecoderException;

import org.apache.commons.codec.binary.Base64;

import org.apache.commons.codec.binary.Hex;

import org.apache.commons.codec.digest.DigestUtils;

/**

 * 通過commonscodec 進行一些簡單的加密解密等

 * @author範芳銘

 */

public classCodecUsage {

    public static void main(String[] args){

        Stringstr = "FanFangming";

       

        Stringbase64 = encodeBaseTest(str);

        decodeBaseTest(base64);

       

        Stringhex = encodeHexTest(str);

        decodeHexTest(hex);

       

        MD5Test(str);

       

        ShaTest(str);

       

    }

    // Base64編解碼

    private static StringencodeBaseTest(String str) {

        Base64base64 = newBase64();

        try {

            str= base64.encodeToString(str.getBytes("UTF-8"));

        }catch(UnsupportedEncodingException e) {

            e.printStackTrace();

        }

        System.out.println("Base64編碼後:" + str);

        return str;

    }

 

    private static void decodeBaseTest(Stringstr) {

        str= newString(Base64.decodeBase64(str));

        System.out.println("Base64解碼後:" + str);

    }

 

    // Hex編解碼

    private static StringencodeHexTest(String str) {

        try {

            str= Hex.encodeHexString(str.getBytes("UTF-8"));

        }catch(UnsupportedEncodingException e) {

            e.printStackTrace();

        }

        System.out.println("Hex編碼後:" + str);

        return str;

    }

 

    private static StringdecodeHexTest(String str) {

        Hexhex = newHex();

        try {

            str= newString((byte[])hex.decode(str));

        }catch(DecoderException e) {

            e.printStackTrace();

        }

        System.out.println("Hex編碼後:" + str);

        return str;

    }

 

    // MD5加密

    private static String MD5Test(Stringstr) {

        try {

            str= newString(DigestUtils.md5Hex(str.getBytes("UTF-8")));

            System.out.println("MD5編碼後:" + str);

        }catch(UnsupportedEncodingException e) {

            e.printStackTrace();

        }

        return str;

    }

 

    // SHA編碼

    private static String ShaTest(Stringstr) {

        try {

            str= newString(DigestUtils.sha256(str.getBytes("UTF-8")));

            System.out.println("SHA編碼後:"+ str);

        }catch(UnsupportedEncodingException e) {

            e.printStackTrace();

        }

        return str;

    }

}

 

運行結果如下:

Base 64 編碼後:RmFuRmFuZ21pbmc=

Base64 解碼後:FanFangming

Hex 編碼後:46616e46616e676d696e67

Hex 編碼後:FanFangming

MD5 編碼後:922b65d5455be7d9a4875b6b1bde638d

SHA 編碼後:31fcbfd641e54747d20288f883458664a05788a9

Apache commons 之 codec 簡介和入門代碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.