Java?Base64?加密與解密示例代碼
一、Java 8 基本 Base64
基本的加密盡量保持簡單,加密輸入字符串沒有增加任何換行符。輸出被映射到“A-Za-z0-9+/”字符集中,解密從該字符集中解析為任意字符
加密一個簡單字符串,代碼如下:
String originalInput = "test input"; String encodedString = Base64.getEncoder().encodeToString(originalInput.getBytes());
解密代碼如下:
byte[] decodedBytes = Base64.getDecoder().decode(encodedString); String decodedString = new String(decodedBytes);
二、Java 8 URL 加密
URL加密和上述基本加密類似,它使用URL和文件名安全Base64字母表(沒有‘+’和‘/’,增加‘-’和‘_’),不添加任何換行隔,代碼如下:
String originalUrl = "https://www.google.co.nz/?gfe_rd=cr&ei=dzbFV&gws_rd=ssl#q=java"; String encodedUrl = Base64.getUrlEncoder().encodeToString(originalURL.getBytes());
解密方式一致——getUrlDecoder() 工具方法返回java.util.Base64.Decoder ,然后解密URL,代碼如下:
byte[] decodedBytes = Base64.getUrlDecoder().decode(encodedUrl); String decodedUrl = new String(decodedBytes);
三、Java 8 MIME(Multipurpose Internet Mail Extensions) 加密
首先生成一些基本MIME輸入數(shù)據(jù)用于加密:
private static StringBuilder getMimeBuffer() { StringBuilder buffer = new StringBuilder(); for (int count = 0; count < 10; ++count) { buffer.append(UUID.randomUUID().toString()); } return buffer; }
MIME加密工具生成Base64加密輸出,輸出被映射到“A-Za-z0-9+/”字符集中,編碼輸出必須以每行不超過76個字符的形式表示,并使用后面跟著的回車符’\r’和換行符’\n’為分隔符,代碼如下:
StringBuilder buffer = getMimeBuffer(); byte[] encodedAsBytes = buffer.toString().getBytes(); String encodedMime = Base64.getMimeEncoder().encodeToString(encodedAsBytes);
getMimeDecoder() 工具方法返回java.util.Base64.Decoder 用于解密過程:
byte[] decodedBytes = Base64.getMimeDecoder().decode(encodedMime); String decodedMime = new String(decodedBytes);
四、總結(jié)
本文介紹了java中Base64加密和解密的基本用法,使用java 8 新引入的API。
另外還有其他庫實(shí)現(xiàn)類似功能——java.xml.bind.DataTypeConverter 提供的 printHexBinary 和 parseBase64Binary。
到此這篇關(guān)于Java Base64 加密與解密的文章就介紹到這了,更多相關(guān)Java Base64 加密與解密內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java 類型相互轉(zhuǎn)換byte[]類型,Blob類型詳細(xì)介紹
這篇文章主要介紹了Java 類型相互轉(zhuǎn)換byte[]類型,Blob類型的相關(guān)資料,需要的朋友可以參考下2016-10-10Java中super關(guān)鍵字介紹以及super()的使用
這幾天看到類在繼承時會用到this和super,這里就做了一點(diǎn)總結(jié),下面這篇文章主要給大家介紹了關(guān)于Java中super關(guān)鍵字介紹以及super()使用的相關(guān)資料,需要的朋友可以參考下2022-01-01