package com.hoo.client; import sun.misc.BASE64Encoder; public class Test { public static void main(String[] args) { BASE64Encoder encoder = new sun.misc.BASE64Encoder(); String str = "中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国"; String right = encoder.encode(str.getBytes()); System.out.println("right=" + right); Thread thread1 = new Thread(new Thread1(encoder, str, right)); thread1.start(); Thread thread2 = new Thread(new Thread2(encoder, str, right)); thread2.start(); } } class Thread1 implements Runnable { private BASE64Encoder encoder; private String str; private String right; public Thread1(BASE64Encoder encoder, String str, String right) { this.encoder = encoder; this.str = str; this.right = right; } public void run() { for (;;) {// 一直循环到出问题为止吧。 String str1 = encoder.encode(str.getBytes()); if (!right.equals(str1)) { System.err.println("wrong=" + str1); System.exit(0); } } } } class Thread2 implements Runnable { private BASE64Encoder encoder; private String str; private String right; public Thread2(BASE64Encoder encoder, String str, String right) { this.encoder = encoder; this.str = str; this.right = right; } public void run() { for (;;) { String str1 = encoder.encode(str.getBytes()); if (!right.equals(str1)) { System.err.println("wrong=" + str1); System.exit(0); } } } }
modify 2014-04-29
调整输出:
import java.io.IOException; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class Test { public static void main(String[] args) { BASE64Encoder encoder = new sun.misc.BASE64Encoder(); String str = "中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国"; String right = encoder.encode(str.getBytes()); System.out.println("right=" + right); Thread thread1 = new Thread(new Thread1(encoder, str)); thread1.start(); Thread thread2 = new Thread(new Thread2(encoder, str)); thread2.start(); } } class Thread1 implements Runnable { private BASE64Encoder encoder; private String str; public Thread1(BASE64Encoder encoder, String str_old) { this.encoder = encoder; this.str = str_old; } public void run() { for (;;) {// 一直循环到出问题为止吧。 String str1 = encoder.encodeBuffer(str.getBytes()); String s_new = ""; BASE64Decoder decode = new BASE64Decoder(); byte[] b; try { b = decode.decodeBuffer(str1); s_new = new String(b); } catch (IOException e) { e.printStackTrace(); } if (!str.equals(s_new)) { System.err.println("wrong=" + s_new); System.exit(0); } } } } class Thread2 implements Runnable { private BASE64Encoder encoder; private String str; public Thread2(BASE64Encoder encoder, String str) { this.encoder = encoder; this.str = str; } public void run() { for (;;) { String str1 = encoder.encodeBuffer(str.getBytes()); String s_new = ""; BASE64Decoder decode = new BASE64Decoder(); byte[] b; try { b = decode.decodeBuffer(str1); s_new = new String(b); } catch (IOException e) { e.printStackTrace(); } if (!str.equals(s_new)) { System.err.println("wrong=" + s_new); System.exit(0); } } } }
相关推荐
虽然`sun.misc`包的`BASE64Encoder`和`BASE64Decoder`曾经是常见的选择,但为了代码的稳定性和安全性,现代开发应当转向使用Java标准库中的`java.util.Base64`。`BASE64Encoder.jar`这样的第三方库则提供了另一种...
1. **`sun.misc.BASE64Decoder` 和 `sun.misc.BASE64Encoder`**: 这是Java早期版本中提供的Base64编码解码器,位于非公开的`sun.misc`包中。这两个类分别用于Base64解码和编码,但因为它们不是Java标准API的一部分,...
1. **Base64Encoder和Base64Decoder**:这两个是`java.util.Base64`类库中的核心接口,分别用于编码和解码。使用`getEncoder()`和`getDecoder()`静态方法可以获取对应的实例。 2. **编码过程**:对于一个字节数组,...
`Decoder.java`和`Encoder.java`是抽象基类,定义了解码器和编码器的基本接口,包括核心的编码和解码方法,子类如Base64Decoder和Base64Encoder继承并实现了这些方法。 综上所述,Apache Commons Codec 1.10提供的...
1. **解码Base64**:使用`Base64.Decoder`类的`decode()`方法对Base64编码的字符串进行解码,得到字节数组。 2. **创建图像流**:使用`javax.imageio.ImageIO`类的`createImageInputStream()`方法创建一个图像输入流...
3. **类接口**:有时,Base64处理会被封装到一个类中,比如TBase64Encoder和TBase64Decoder,提供更高级别的接口,可能包括流处理和错误处理能力。 4. **内存管理**:编码和解码过程可能会涉及到内存的分配和释放,...
在Java中,`sun.misc.BASE64Decoder`和`sun.misc.BASE64Encoder`是早期用于Base64编码和解码的类,它们位于非公开的`sun.misc`包中。虽然这些类在某些版本的JDK中可用,但它们并不是标准API的一部分,因此不推荐在...
2. `Base64.Encoder` 和 `Base64.Decoder`: 这两个接口提供了更灵活的编码和解码选项,例如自定义线程安全的实例,控制是否添加行分隔符等。 - `Encoder.encodeToBytes(ByteBuffer)`: 编码ByteBuffer中的数据为字节...
例如,你可以创建一个`Base64.Encoder`对象来编码二进制数据,创建一个`Base64.Decoder`对象来解码Base64字符串。这里是一个简单的使用示例: ```java import java.util.Base64; public class Base64Example { ...
例如,可以使用多线程处理,或者预先计算并缓存Base64编码结果,减少重复计算。 7. **错误处理**:在实际开发中,需要考虑文件不存在、编码/解码过程中出现的错误等情况,并添加相应的异常处理机制。 以上就是在...
private static BASE64Decoder dec = new BASE64Decoder(); // 将String转换成byte[] // DES加密解密逻辑... } ``` #### 七、Java正则表达式 Java的正则表达式提供了一种强大的文本匹配工具。其中,数量限定符...
解码时,使用`Base64.Decoder`进行反向操作。 5. 安全考虑: - 避免明文存储密钥,可使用密钥派生函数(如PBKDF2)将用户提供的密码转换为密钥。 - AES的ECB模式不安全,因为它不隐藏数据的模式,建议使用CBC模式...
可以使用在线工具进行base64编码,如http://www.motobit.com/util/base64-decoder-encoder.asp。 验证通过后,开始发送邮件的具体信息。"MAIL FROM:"命令指定发件人,"RCPT TO:"命令指定收件人,可以发送多个"RCPT ...
- 使用sun.misc.BASE64Decoder和BASE64Encoder需要注意,这两个类在Java 9及以后版本中已废弃,应使用Java标准库的`java.util.Base64`进行Base64编码和解码操作。 - 服务器端的文件路径应根据实际环境配置,避免硬...
- **2.1.3 Base64Decode 和 Base64Encode Samples**:这两个样例分别展示了如何使用 `Base64Decoder` 和 `Base64Encoder` 类来进行数据的 Base64 编码与解码操作。 - **2.1.4 BinaryReaderWriterSample**:本示例...
7. **解码器和编码器**:FFmpeg的`avcodec_find_decoder()`和`avcodec_find_encoder()`函数分别用于查找合适的解码器和编码器。`avcodec_decode_video2()`或`avcodec_decode_audio4()`用于解码数据,`avcodec_encode...
6. **多线程/进程支持**:在高并发场景下,为了提高性能,可能需要在多个线程或进程中并行处理套接字通信。库可能提供并发处理的支持,比如通过Node.js的`worker_threads`模块。 7. **实用工具**:库还可能包含一些...