一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java實現Base64加密解密算法

java實現Base64加密解密算法

2020-04-18 12:13wangxp JAVA教程

Base64用來將非ASCII字符的數據轉換成ASCII字符的一種方法,這篇文章主要為大家詳細介紹了java實現Base64加密解密算法,感興趣的小伙伴們可以參考一下

Base64是網絡上最常見的用于傳輸8Bit字節代碼的編碼方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的詳細規范。Base64編碼可用于在HTTP環境下傳遞較長的標識信息。例如,在Java Persistence系統Hibernate中,就采用了Base64來將一個較長的唯一標識符(一般為128-bit的UUID)編碼為一個字符串,用作HTTP表單和HTTP GET URL中的參數。在其他應用程序中,也常常需要把二進制數據編碼為適合放在URL(包括隱藏表單域)中的形式。

此時,采用Base64編碼不僅比較簡短,同時也具有不可讀性,即所編碼的數據不會被人用肉眼所直接看到。
java的加密方式有很多中,現在給大家分享一個Base64加密的方式

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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加密解密算法的全部內容,希望對大家進行加密解密的學習有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 奇米7777第四色 | 欧美日韩精品免费一区二区三区 | 视频一本大道香蕉久在线播放 | 精品99一区二区三区麻豆 | 香蕉视频在线观看网站 | 精品一二三区久久AAA片 | 范冰冰性xxxxhd | 91影视永久福利免费观看 | 亚洲va欧美va天堂v国产综合 | 日韩伦理在线免费观看 | 日本免费一区二区三区a区 日本免费三片在线观看 | 女人与zzzooooxxx | 国产91成人精品亚洲精品 | 亚洲高清视频网站 | 国产伊人网 | 国产成人精品.一二区 | 午夜一区二区福利视频在线 | 精品久久免费观看 | 久久青青草原综合伊人 | 日韩一级欧美一级一级国产 | 国产伦久视频免费观看视频 | 成人精品一区二区三区 | 亚洲欧美成人综合在线 | 亚洲欧美优优色在线影院 | 深夜福利免费观看 | 欧洲喷浆乌克兰 | 午夜免费无码福利视频麻豆 | 亚洲AV无码一区二区三区乱子伦 | 农村妇女野战bbxxx | 无码日韩精品一区二区免费 | 涩涩漫画软件 | 特黄特色大片免费高清视频 | 男人吃奶动态图 | 国产特黄a级在线视频 | 国产精品调教 | hh99me福利毛片 | 亚洲欧美日韩中文字幕久久 | 午夜国产小视频 | 爸爸干女儿小说 | 校服下的白嫩小乳尖h1v1 | 精灵之森高清在线 |