[英]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.