[英]AES using Base64 Encryption
我的目標是使用AES加密字符串我使用Base64進行加密,因為AES需要一個字節數組作為輸入。 此外,我希望正確存儲每個可能的Char(包括中文和德文符號)
byte[] encryptedBytes = Base64.decodeBase64 ("some input");
System.out.println(new Base64().encodeToString(encryptedBytes));
我認為應該打印“一些輸入”。 而是打印“someinpu”。 我不可能使用sun.misc。*而是使用apache.commons.codec
有人知道出了什么問題嗎?
是 - “某些輸入”不是有效的base64編碼字符串。
base64的想法是將二進制數據編碼為文本 。 然后,您將該文本數據解碼為字節數組。 您不能只解碼任何任意文本,就像它是一個完整的base64消息一樣,你可以嘗試將mp3解碼為jpeg圖像。
加密字符串應該是這個過程:
text.getBytes("UTF-8")
) 解密是一個問題:
new String(bytes, "UTF-8")
您不能使用Base64將任意文本轉換為字節; 這不是它的設計目的。
相反,你應該使用UTF8:
byte[] plainTextBytes = inputString.getBytes("UTF8");
String output = new String(plainTextBytes, "UTF8");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.