1、BASE64加密和解密概述html
Base64是網絡上最多見的用於傳輸8Bit字節代碼的編碼方式之一,Base64編碼可用於在HTTP環境下傳遞較長的標識信息。例如,在Java Persistence系統Hibernate中,就採用了Base64來將一個較長的惟一標識符(通常爲128-bit的UUID)編碼爲一個字符串,用做HTTP表單和HTTP GET URL中的參數。在其餘應用程序中,也經常須要把二進制數據編碼爲適合放在URL(包括隱藏表單域)中的形式。此時,採用Base64編碼具備不可讀性,即所編碼的數據不會被人用肉眼所直接看到。java
然而,標準的Base64並不適合直接放在URL裏傳輸,由於URL編碼器會把標準Base64中的「/」和「+」字符變爲形如「%XX」的形式,而這些「%」號在存入數據庫時還須要再進行轉換,由於ANSI SQL中已將「%」號用做通配符。算法
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.3.2</version> </dependency>
二、MD5使用代碼數據庫
package com.jd.test; import org.apache.commons.codec.binary.Base64; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.UnsupportedEncodingException; /** * * BASE64 通用類 * * @author 浩令天下 * @since 2017.04.15 * @version 1.0.0_1 * */ public class Base64Util { private static final Logger logger = LoggerFactory.getLogger(Base64Util.class); /** * 對給定的字符串進行base64解碼操做 */ public static String decodeData(String inputData) { try { if (null == inputData) { return null; } return new String(Base64.decodeBase64(inputData.getBytes("utf-8")), "utf-8"); } catch (UnsupportedEncodingException e) { logger.error(inputData, e); } return null; } /** * 對給定的字符串進行base64加密操做 */ public static String encodeData(String inputData) { try { if (null == inputData) { return null; } return new String(Base64.encodeBase64(inputData.getBytes("utf-8")), "utf-8"); } catch (UnsupportedEncodingException e) { logger.error(inputData, e); } return null; } /** * 測試入口 * * @param args */ public static void main(String args[]){ String encodeStr=Base64Util.encodeData("龍不吟,虎不嘯"); System.out.println("encodeStr="+encodeStr); String decodeStr=Base64Util.decodeData(encodeStr); System.out.println("decodeStr="+decodeStr); } }
常見加密工具參考連接:apache
一、常見的加密和解密算法—MD5網絡
二、常見的加密和解密算法—BASE64maven
三、常見的加密和解密算法—DES工具
四、常見的加密和解密算法—AES測試