Apache Commons Codec 使用小結
阿新 • • 發佈:2019-02-13
最近在做圖片下載的時候需要對圖片連結url做 SHA1運算後的結果 SHA1(url)當做圖片的名稱,並且按照SHA1結果的前2位、第3位分別當做一級目錄和目錄,例如3129f49a746530a891854b171f38a1df3677cc47.jpeg存放的目錄結構: 31/2/3129f49a746530a891854b171f38a1df3677cc47.jpeg
關於SHA1演算法的介紹可以參看Wiki:http://en.wikipedia.org/wiki/SHA-1
這裡簡單介紹一下通過 Apache Commons Codec 實現Base64/MD5/SHA1/SHA256等演算法,程式碼如下:
package com.ricky.java.csv.util; import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.digest.DigestUtils; public class EncryptionUtils { public static String base64Encode(String data){ return Base64.encodeBase64String(data.getBytes()); } public static byte[] base64Decode(String data){ return Base64.decodeBase64(data.getBytes()); } public static String md5(String data) { return DigestUtils.md5Hex(data); } public static String sha1(String data) { return DigestUtils.shaHex(data); } public static String sha256Hex(String data) { return DigestUtils.sha256Hex(data); } /** * @param args */ public static void main(String[] args) { String base64 = base64Encode("ricky"); System.out.println("base64 encode="+base64); byte[] buf = base64Decode(base64); System.out.println("base64 decode="+new String(buf)); String md5 = md5("ricky"); System.out.println("md5="+md5+"**len="+md5.length()); String sha1 = sha1("test"); System.out.println("sha1="+sha1+"**len="+sha1.length()); } }