常見的加密和解密算法—BASE64


一、BASE64加密和解密概述

  Base64是網絡上最常見的用於傳輸8Bit字節代碼的編碼方式之一,Base64編碼可用於在HTTP環境下傳遞較長的標識信息。例如,在Java Persistence系統Hibernate中,就采用了Base64來將一個較長的唯一標識符(一般為128-bit的UUID)編碼為一個字符串,用作HTTP表單和HTTP GET URL中的參數。在其他應用程序中,也常常需要把二進制數據編碼為適合放在URL(包括隱藏表單域)中的形式。此時,采用Base64編碼具有不可讀性,即所編碼的數據不會被人用肉眼所直接看到。

      然而,標准的Base64並不適合直接放在URL里傳輸,因為URL編碼器會把標准Base64中的“/”和“+”字符變為形如“%XX”的形式,而這些“%”號在存入數據庫時還需要再進行轉換,因為ANSI SQL中已將“%”號用作通配符。

為解決此問題,可采用一種用於URL的改進Base64編碼,它不僅在末尾去掉填充的'='號,並將標准Base64中的“+”和“/”分別改成了“-”和“_”,這樣就免去了在URL編解碼和數據庫存儲時所要作的轉換,避免了編碼信息長度在此過程中的增加,並統一了數據庫、表單等處對象 標識符的格式。
 
    BASE64 是對稱的加密算法(PS:對稱加密就是加密用的密碼和解密用的密碼是一樣的,非對稱就是加密和解密用的密鑰不一樣)
 
參考連接: BASE64加密和解密
 
 
二、Java實現MD5加密解密
1、maven 引入apache的jar(不是maven項目,去網上下一個jar手動引入)

 

            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.3.2</version>
            </dependency>

 

2、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);
    }

}

 

 

常見加密工具參考鏈接:

1、常見的加密和解密算法—MD5

2、常見的加密和解密算法—BASE64

3、常見的加密和解密算法—DES

4、常見的加密和解密算法—AES


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM