0

メッセージの base 64 エンコーディングを実行しようとしています。次に、メッセージを URL エンコードし、エンコードされたコンテンツ全体をパラメーター/値としてクエリ文字列に渡します。 http://www.xxxxxx.com/xxxxx?query=base64urlencodedメッセージ

したがって、base64 エンコーディングを使用してから URL エンコーディングを使用したいと考えています。apache はそれに適したライブラリを提供しているようです。

したがって、以下のApacheメソッドでは:

1) 1)、2) および 3) を使用したい方法を確認する方法 1 と 3 はどう違いますか?どっちが安全???2) 最初に base64 を使用していますが、出力としてバイト配列のみを取得するので、方法 2 のみを使用する必要があるということですか?

URLCodec url=新しい URLCodec();

1) url.encode(文字列、文字セット);

2) url.encode(バイト);

3) url.encode(文字列);

4

1 に答える 1

0

このテストでは明確にする必要があります

    String s1 = "test";
    System.out.println(s1);
    Base64 base64 = new Base64();
    String s2 = base64.encodeAsString(s1.getBytes());
    System.out.println(s2);
    URLCodec url = new URLCodec();
    String s3 = url.encode(s2);
    System.out.println(s3);
    s2 = url.decode(s3);
    System.out.println(s2);
    s1 = new String(base64.decode(s2));
    System.out.println(s1);

出力

test
dGVzdA==
dGVzdA%3D%3D
dGVzdA==
test

ところで、標準の java.net.URLEncoder / java.net.URLDecoder および javax.bind.DatatypeConverted クラスでも同じことができます

于 2013-07-25T11:44:23.287 に答える