繁体   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