私はキャプチャ・ザ・フラッグ・コンテストに参加しています。私が取り組んでいる質問は、Javaオブジェクトの逆シリアル化に関するものです。私はbase64でエンコードされたクッキー文字列を調べています。私はそれをデコードするときに、値を変更してbase64で再エンコードするためにデシリアライズしたいJavaの直列化オブジェクトだと思います。java 8 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());
}
}
}
私が手にエラーがある:
互換性のない型:バイトは[]
すべてのヘルプは感謝のInputStreamに変換することはできません!
のようにそれらのバイト
から文字列を作成しても意味がありません面白いありがとう。どのようにしてデシリアライズされたデータを印刷するのですか? –
実際に私はiveがそれを行う方法を見つけたと思う。出力はi base64で解読したときと同じように見えますが、つまり印刷できないASCII文字です。 –
どの道路でも、あなたの答えは私の質問には正しいので、そのようにマークされています。ありがとう –