簡體   English   中英

使用apache commons編碼消息

[英]encoding a message using apache commons

我正在嘗試對某些消息進行base 64編碼,然后對消息進行URL編碼,然后將整個編碼后的內容作為參數/值傳遞給查詢字符串。 http://www.xxxxxx.com/xxxxx?query=base64urlencoded消息

所以我想使用base64編碼,然后再使用URL編碼。 我看到apache為此提供了很好的庫。

因此,在以下apache方法中:

1)如何查看我要使用哪種方法1),2)和3)2)在下面的方法1中,使用特定字符集進行編碼意味着僅使用所選字符集進行編碼? 1和3有什么區別? 哪個更安全??? 2)我首先使用base64,這是否意味着我將僅獲得字節數組作為輸出,因此我應僅使用方法2?

URLCodec url =新的URLCodec();

1)url.encode(str,charset);

2)url.encode(bytes);

3)url.encode(str);

這個測試應該很清楚

    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類進行相同的操作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM