【发布时间】:2016-09-24 09:48:53
【问题描述】:
我正在参加夺旗比赛。我坚持的一个问题与 Java 对象的反序列化有关。我正在询问一个 base64 编码的 cookie 字符串。当我解码它时,我相信它是一个 Java 序列化对象,我想反序列化它以改变它们的值并在 base64 中重新编码。
我对java一无所知,我试图反序列化base64解码的字节,但我认为这是错误的类型。
import java.util.Base64;
import java.util.UUID;
import java.io.UnsupportedEncodingException;
import java.io.ObjectInputStream;
public class decode {
public static void main(String args[]){
try {
// Encode using basic encoder
String base64encodedString = "mybase64encodedstring==";
System.out.println("Base64 encoded string :" + base64encodedString);
// Decode
byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);
ObjectInputStream in = new ObjectInputStream(base64decodedBytes);
System.out.println("Deserialised data: \n" + in.readObject().toString());
System.out.println("Original String: " + new String(base64decodedBytes, "utf-8"));
}catch(UnsupportedEncodingException e){
System.out.println("Error :" + e.getMessage());
}
}
}
我得到的错误是:
不兼容的类型:byte[] 无法转换为 InputStream
任何帮助表示赞赏!
【问题讨论】:
标签: java serialization