尝试将字符串编码/解码为 Base64 时出错

2022-09-03 04:54:02

我需要从字节数组到搅拌进行Base64编码,而不是另一个字节数组。但是当我把它解码回来时,我得到了例外。这是代码

我正在尝试使用Base64编码将字节数组编码为字符串。当我编码时,它似乎可以工作,但是当我解码时,它会引发异常。我做错了什么?

import org.springframework.security.crypto.codec.Base64;

byte[] bytes = new byte[]{1,2,3,4,5,6,7,8,9};
String stringToStore = Base64.encode(bytes).toString();
byte[] restoredBytes = Base64.decode(stringToStore.getBytes());

这是我得到的例外:

org.springframework.security.crypto.codec.InvalidBase64CharacterException: Bad Base64 input character decimal 91 in array position 0
at org.springframework.security.crypto.codec.Base64.decode(Base64.java:625)
at org.springframework.security.crypto.codec.Base64.decode(Base64.java:246)

答案 1

你能试试吗?

byte[] bytes = new byte[]{1,2,3,4,5,6,7,8,9}; 
String stringToStore = new String(Base64.encode(bytes));
byte[] restoredBytes = Base64.decode(stringToStore.getBytes()); 

答案 2

Base64.encode(bytes).toString()不返回预期的字符串。

您应该使用

new String(Base64.encode(bytes))

正如icthedral所建议的那样。


推荐