我正在使用Eclipse.我有以下代码行:
wr.write(new sun.misc.BASE64Encoder().encode(buf));
Run Code Online (Sandbox Code Playgroud)
Eclipse将此行标记为错误.我导入了所需的库:
import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;
Run Code Online (Sandbox Code Playgroud)
我使用Apache Commons作为建议的解决方案,包括:
import org.apache.commons.*;
Run Code Online (Sandbox Code Playgroud)
并导入从以下网址下载的JAR文件:http://commons.apache.org/codec/
但问题仍然存在.Eclipse仍然显示前面提到的错误; 请指教.
在base64编码中填充的目的是什么.以下是维基百科的摘录:
"分配了一个额外的填充字符,可用于强制编码输出为4个字符的整数倍(或等效于未编码的二进制文本不是3个字节的倍数);这些填充字符必须在解码时丢弃,但仍然允许计算未编码文本的有效长度,当其输入二进制长度不是3个字节的倍数时(最后一个非填充字符通常被编码,使得它代表的最后一个6位块将为零在其最低有效位上填充,在编码流的末尾最多可能出现两个填充字符."
我写了一个程序,它可以base64编码任何字符串并解码任何base64编码的字符串.填充解决了什么问题?
我正在尝试将一个简单的JSON帖子实现到接受JSON身体基本身份验证的URL ANDROID.
我试过HttpUrlConnection但我得到了"unauthorized"我的数据发送到服务器.
我尝试的另一种方法是使用HttpClient,但现在我遇到了另一个问题.身份验证工作正常,但数据不会发送到服务器...
可以肯定的是,我在一个简单的Java项目(不是Android环境)中设置了一个小测试.
这是我POST用于服务器的代码:
DefaultHttpClient httpClient = new DefaultHttpClient();
ResponseHandler<String> resonseHandler = new BasicResponseHandler();
HttpPost postMethod = new HttpPost("http://localhost/api/v1/purchase/");
postMethod.setEntity(new StringEntity("{\"amount_adult\" : 1, \"object_id\" : 13}"));
postMethod.setHeader( "Content-Type", "application/json");
String authorizationString = "Basic " + Base64.encodeToString(("travelbuddy" + ":" + "travelbuddy").getBytes(), Base64.DEFAULT); //this line is diffe
postMethod.setHeader("Authorization", authorizationString);
String response = httpClient.execute(postMethod,resonseHandler);
System.out.println("response :" + response);
Run Code Online (Sandbox Code Playgroud)
Java项目中的代码非常完美.
当我在Android中尝试完全相同的代码时,我internal server error从服务器获取,这意味着尚未收到JSON数据.
我真的不明白为什么这在JAVA中工作但在Android中不起作用.
我想要实现的效果是以下命令:
curl --dump-header …Run Code Online (Sandbox Code Playgroud) 我是android新手.我已经使用Json格式将图像作为字符串发送到服务器.
所以我有编码图像字符串即base64字符串.
Json j = new JSonObject();
String Image_string = Base64.ToEncodedString(bytearray, Base64.Default);
j.put("image_file_content",Image_string);
Run Code Online (Sandbox Code Playgroud)
但是我收到了这个错误.请帮帮我......错了
400错误请求
您的浏览器发送了此服务器无法理解的请求.
此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误.
假设我有一个IP地址,192.168.1.1
我希望我的程序基于此IP地址创建一个随机的单字符串,无需密钥或密码或其他安全性即可轻松解密.
例如.
我输入192.168.1.1
程序将其转换为AzlQrEHCSD或其他随机字符串
我在程序中输入这个字符串
它被转换回192.168.1.1
是否有任何简单的算法可以做到这一点,而不会生成密钥或其他密码之类的东西?据我所知,密钥和密码都必须进行加密和解密,但我的情况并不需要它.
我试图将xml格式的数据解码为字节(base64),我遇到了问题.我在java中编写了一个程序,它接受一个String数据并将其转换为如下字节:
String data = "......"; //string of data in xml format
byte[] dataBytes = Base64.getDecoder().decode(data);
Run Code Online (Sandbox Code Playgroud)
这失败了,给我和这样的例外:
java.lang.IllegalArgumentException: Illegal base64 character 3c
at java.util.Base64$Decoder.decode0(Base64.java:714)
at java.util.Base64$Decoder.decode(Base64.java:526)
at java.util.Base64$Decoder.decode(Base64.java:549)
at XmlReader.main(XmlReader.java:61)
Run Code Online (Sandbox Code Playgroud)
xml格式与base64不兼容吗?似乎问题可能是由尖括号'<>'引起的
我们需要读取文件内容并将其转换为SHA256,然后将其转换为Base64.
任何指针或示例代码都足够了,因为我是这种加密机制的新手.
提前致谢.