Java使用Base64编码

大多数教程演示Java使用Base64时都会导入sun.misc.BASE64Encoder和sun.misc.BASE64Decoder。事实上,官方Java API是找不到这两个类的,迟早都会被抛弃。推荐使用org.apache.commons.codec.binary.Base64。


直接上代码

import org.apache.commons.codec.binary.Base64;

//编码解码类 Encryption.java
public class Encryption {
    //Base64 解码
    public static byte[] decryptBase64(byte[] data) {
        return Base64.decodeBase64(data);
    }


    //Base64 编码
    public static byte[] encryptBase64(byte[] data) {
        return Base64.encodeBase64(data);
    }
}

重写这两个方法,没错,就是这么简单。

再来一个测试类

//测试类 Test.java
public class Test {
    public static void main(String[] args) {
        String s = "恭喜发财";
        System.out.println("明文: " + s);

        String ciphertext = new String(Encryption.encryptBase64(s.getBytes()));

        System.out.println("编码后: " + ciphertext);

        String plaintext = new String(Encryption.decryptBase64(ciphertext.getBytes()));

        System.out.println("解码后: " + plaintext);
    }
}

输出结果:

明文: 恭喜发财
编码后: 5oGt5Zac5Y+R6LSi
解码后: 恭喜发财

注意事项

  • 注意IDE和文件的字符集,特别是有中文字符串的时候
  • byte转String要使用 String s = new String(byte);
  • 不能使用byte.toString();
  • 把commons-codec-1.10.jar导入到项目就行了

所需资源

  • jar官方下载地址:http://commons.apache.org/proper/commons-codec/
  • 官方api:http://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/binary/Base64.html

你可能感兴趣的:(Java,BASE64,Java,编码)