在日常的開發(fā)工作中,我們常常需要對一些敏感信息進(jìn)行加密,比如用戶名、密碼等等。而在Java中,我們可以使用JSON和Base64來進(jìn)行加密,下面我們來詳細(xì)了解一下。
首先,讓我們來看看什么是JSON。JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,使用它可以方便地在不同語言之間傳輸數(shù)據(jù)。JSON格式的數(shù)據(jù)比較簡潔,且易于閱讀和編寫,通常在Web服務(wù)中用來傳輸數(shù)據(jù)。
接著,我們再來看看什么是Base64。Base64是一種用64個字符來表示任意二進(jìn)制數(shù)據(jù)的編碼方式,其原理就是將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成一組能夠顯示的ASCII字符。Base64編碼后的數(shù)據(jù)長度會比原數(shù)據(jù)大約1/3,但其不會改變原數(shù)據(jù)的值,可以用于數(shù)據(jù)傳輸和數(shù)據(jù)存儲。
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
public class JsonBase64Demo {
public static void main(String[] args) {
MapuserInfo = new HashMap<>();
userInfo.put("username", "admin");
userInfo.put("password", "admin123");
// 將Map轉(zhuǎn)換成JSON字符串
String jsonStr = JSON.toJSONString(userInfo);
System.out.println("JSON字符串:" + jsonStr);
// 對JSON字符串進(jìn)行Base64編碼
String encodedStr = Base64.getEncoder().encodeToString(jsonStr.getBytes());
System.out.println("Base64編碼后字符串:" + encodedStr);
// 對Base64編碼后的字符串進(jìn)行解碼
byte[] decodedBytes = Base64.getDecoder().decode(encodedStr);
String decodedStr = new String(decodedBytes);
System.out.println("Base64解碼后字符串:" + decodedStr);
}
}
上述代碼中,我們首先創(chuàng)建了一個HashMap對象,將用戶名和密碼存入其中。然后,我們使用JSON.toJSONString()方法將Map對象轉(zhuǎn)換成JSON格式的字符串,并輸出到控制臺中。接著,我們使用Base64.getEncoder().encodeToString()方法對JSON字符串進(jìn)行Base64編碼,并輸出到控制臺中。最后,我們使用Base64.getDecoder().decode()方法對編碼后的字符串進(jìn)行解碼,并將解碼后的字符串輸出到控制臺中。
通過上述代碼的執(zhí)行結(jié)果可以看出,我們成功地將Map對象轉(zhuǎn)換成JSON字符串,并對其進(jìn)行了Base64編碼和解碼。