java利用Apache commons codec進(jìn)行MD5加密,BASE64加密解密,執(zhí)行系統(tǒng)命令
編寫代碼之前先來(lái)介紹一下我們要用到的兩個(gè)包;
commons-codec-1.10.jar
Commons項(xiàng)目中用來(lái)處理常用的編碼方法的工具類包,例如DES、SHA1、MD5、Base64,URL,Soundx等等。
commons-exec-1.3.jar
Apache Commons Exec 是 Apache 上的一個(gè) Java 項(xiàng)目,提供一些常用的方法用來(lái)執(zhí)行外部進(jìn)程
你可以到本站直接下載 Apache Commons 官方包
下面看一下代碼結(jié)構(gòu):
import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.digest.DigestUtils; /** * @author Delver_Si * */ public class EncodeAndDecode { /** * Md5加密 * @param str * @return */ public static String Md5encode(String str) { return DigestUtils.md5Hex(str); } /** * Base64加密 * @param str * @return */ public static String Base64encode(String str) { byte[] b = Base64.encodeBase64(str.getBytes(), true); return new String(b); } /** * Base64解密 * @param str * @return */ public static String Base64decode(String str) { byte[] b = Base64.decodeBase64(str.getBytes()); return new String(b); } /** * 生成SHA1 */ public static String SHA1encode(String str) { return DigestUtils.sha1Hex(str); } }
把主要功能都放在一個(gè)類文件中
新建Test類引用上個(gè)文件
import security.EncodeAndDecode; import security.Exec; public class Test { public static void main(String[] args) { System.out.println(EncodeAndDecode.Md5encode("jb51.net"));//MD5加密 System.out.println(EncodeAndDecode.Base64encode("jb51.net"));//Base64加密 System.out.println(EncodeAndDecode.Base64decode("amI1MS5uZXQ="));//Base64解密 String str = Exec.exec("ping jb51.net");//執(zhí)行系統(tǒng)的Ping命令 System.out.println(str); } }
好了 ,運(yùn)行一下看看最終結(jié)果
這些只是Apache commons 包的基本功能,其它功能大家可以到這里下載 apache commons 使用說(shuō)明 中文WORD版 詳細(xì)研究
相關(guān)文章
關(guān)于Netty--Http請(qǐng)求處理方式
這篇文章主要介紹了關(guān)于Netty--Http請(qǐng)求處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06Spring5中SpringWebContext方法過(guò)時(shí)的解決方案
這篇文章主要介紹了Spring5中SpringWebContext方法過(guò)時(shí)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01Java實(shí)現(xiàn)整數(shù)的逆序輸出的三種方法
這篇文章主要介紹了Java實(shí)現(xiàn)整數(shù)的逆序輸出的三種方法,第一種是無(wú)限制整數(shù)的逆序輸出,第二種是非負(fù)整數(shù)的逆序輸出,第三種是非特殊情況的逆序輸出,每種方法給大家講解的非常詳細(xì)需要的朋友可以參考下2022-11-11解決springcloud啟動(dòng)時(shí)報(bào)錯(cuò)Connection refused:connect問(wèn)題
這篇文章主要介紹了解決springcloud啟動(dòng)時(shí)報(bào)錯(cuò)Connection refused:connect問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05Java?MyBatis實(shí)戰(zhàn)之QueryWrapper中and和or拼接技巧大全
在Java中QueryWrapper是MyBatis-Plus框架中的一個(gè)查詢構(gòu)造器,它提供了豐富的查詢方法,其中包括and和or方法,可以用于構(gòu)建復(fù)雜的查詢條件,這篇文章主要給大家介紹了關(guān)于Java?MyBatis實(shí)戰(zhàn)之QueryWrapper中and和or拼接技巧的相關(guān)資料,需要的朋友可以參考下2024-07-07SpringBoot項(xiàng)目啟動(dòng)時(shí)提示程序包不存在和找不到符號(hào)的處理方法
最近接手同事開發(fā)的一個(gè)Springboot工作項(xiàng)目,從svn上整體拉取下來(lái)后,構(gòu)建完成后,啟動(dòng)的時(shí)候遇到了程序包找不到的情況,所以本文記錄了SpringBoot項(xiàng)目啟動(dòng)時(shí)提示程序包不存在和找不到符號(hào)的處理方法,需要的朋友可以參考下2024-05-05Java中的讀寫鎖ReentrantReadWriteLock源碼分析
這篇文章主要介紹了Java中的讀寫鎖ReentrantReadWriteLock源碼分析,ReentrantReadWriteLock 分為讀鎖和寫鎖兩個(gè)實(shí)例,讀鎖是共享鎖,可被多個(gè)線程同時(shí)使用,寫鎖是獨(dú)占鎖,持有寫鎖的線程可以繼續(xù)獲取讀鎖,反之不行,需要的朋友可以參考下2023-12-12Java實(shí)現(xiàn)斷點(diǎn)下載功能的示例代碼
當(dāng)下載一個(gè)很大的文件時(shí),如果下載到一半暫停,如果繼續(xù)下載呢?斷點(diǎn)下載就是解決這個(gè)問(wèn)題的。本文將用Java語(yǔ)言實(shí)現(xiàn)斷點(diǎn)下載,需要的可以參考一下2022-05-05java之使用多線程代替for循環(huán)(解決主線程提前結(jié)束問(wèn)題)
這篇文章主要介紹了java之使用多線程代替for循環(huán)(解決主線程提前結(jié)束問(wèn)題),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03