程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java完成Base64加密解密算法

java完成Base64加密解密算法

編輯:關於JAVA

java完成Base64加密解密算法。本站提示廣大學習愛好者:(java完成Base64加密解密算法)文章只能為提供參考,不一定能成為您想要的結果。以下是java完成Base64加密解密算法正文


Base64是收集上最多見的用於傳輸8Bit字節代碼的編碼方法之一,年夜家可以檢查RFC2045~RFC2049,下面有MIME的具體標准。Base64編碼可用於在HTTP情況下傳遞較長的標識信息。例如,在Java Persistence體系Hibernate中,就采取了Base64來將一個較長的獨一標識符(普通為128-bit的UUID)編碼為一個字符串,用作HTTP表單和HTTP GET URL中的參數。在其他運用法式中,也經常須要把二進制數據編碼為合適放在URL(包含隱蔽表單域)中的情勢。

此時,采取Base64編碼不只比擬冗長,同時也具有弗成讀性,即所編碼的數據不會被人用肉眼所直接看到。
java的加密方法有許多中,如今給年夜家分享一個Base64加密的方法

package com.crypt;
 
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**
 *  BASE64加密解密
 * @author YUANWEi
 */
public class BASE64 {
  /** 
   * BASE64解密 
   * 
   * @param key 
   * @return 
   * @throws Exception 
   */ 
  public static byte[] decryptBASE64(String key) throws Exception { 
    return (new BASE64Decoder()).decodeBuffer(key); 
  } 
    
  /** 
   * BASE64加密 
   * 
   * @param key 
   * @return 
   * @throws Exception 
   */ 
  public static String encryptBASE64(byte[] key) throws Exception { 
    return (new BASE64Encoder()).encodeBuffer(key); 
  } 
}

為何要應用Base64加密呢?

Base64編碼的感化:因為某些體系中只能應用ASCII字符。Base64就是用來將非ASCII字符的數據轉換成ASCII字符的一種辦法。它應用上面表中所應用的字符與編碼。

並且base64特殊合適在http,mime協定下疾速傳輸數據。

base64其實不是平安范疇下的加密解密算法。固然有時刻常常看到所謂的base64加密解密。其實base64只能算是一個編碼算法,對數據內容停止編碼來合適傳輸。固然base64編碼事後原文也釀成不克不及看到的字符格局,然則這類方法很低級,很簡略。

Base64編碼辦法請求把每三個8Bit的字節轉換為四個6Bit的字節,個中,轉換以後的這四個字節中每6個有用bit為是有用數據,空余的那兩個 bit用0補上成為一個字節。是以Base64所形成數據冗余不是很嚴重,Base64是現今比擬風行的編碼辦法,由於它編起來速度快並且簡略。

常識彌補:

尺度的Base64其實不合適直接放在URL裡傳輸,由於URL編碼器會把尺度Base64中的“/”和“+”字符變成形如“%XX”的情勢,而這些“%”號在存入數據庫時還須要再停止轉換,由於ANSI SQL中已將“%”號用作通配符。

為處理此成績,可采取一種用於URL的改良Base64編碼,它不在末尾填充'='號,並將尺度Base64中的“+”和“/”分離改成了“*”和“-”,如許就免除了在URL編解碼和數據庫存儲時所要作的轉換,防止了編碼信息長度在此進程中的增長,並同一了數據庫、表單等處對象標識符的格局。

尚有一種用於正則表達式的改良Base64變種,它將“+”和“/”改成了“!”和“-”,由於“+”,“*”和後面在IRCu頂用到的“[”和“]”在正則表達式中都能夠具有特別寄義。

另外還有一些變種,它們將“+/”改成“_-”或“._”(用作編程說話中的標識符稱號)或“.-”(用於XML中的Nmtoken)乃至“_:”(用於XML中的Name)。

Base64請求把每三個8Bit的字節轉換為四個6Bit的字節(3*8 = 4*6 = 24),然後把6Bit再添兩位高位0,構成四個8Bit的字節,也就是說,轉換後的字符串實際大將要比本來的長1/3。

以上就是關於Base64、Base64加密解密算法的全體內容,願望對年夜家停止加密解密的進修有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved