欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA加密算法使用——Base64编程使用(sun和cc)实现编解码工具类

程序员文章站 2022-04-28 21:24:51
...

该博客打算简单介绍下Base64编码以及在java环境下的两种编程使用(sun公司提供的jar和apache提供的jar)//不过我这里是建议大家使用apache提供的BASE64的jar,因为sun内部API sun.misc.BASE64在编译时会出现后期可能被删除的潜在风险警告。所以,大家看着办把…….

该篇博客目录

1、Base64编码示例
2、Base64算法定义
3、Base64两种编程使用(sun.misc.BASE64和commons-codec)实现(编码解码工具类)

一、Base64编码示例

可以百度Base64编码,会有在线编辑器,可以看出明文“hello”经过Base64编码得到密文“aGVsbG8=”

JAVA加密算法使用——Base64编程使用(sun和cc)实现编解码工具类

下面是Base64编码表(**)

JAVA加密算法使用——Base64编程使用(sun和cc)实现编解码工具类


二、Base64算法定义

Base64是一种基于64个字符的编码算法,从任意8位字节序列组合的描述形式,这种形式不易直接识别,经过Base64编码后的字符串的字符数是以4为单位的整数倍


三、Base64两种编程使用(sun.misc.BASE64和commons-codec)(编码解码工具类)

1、sun.misc.BASE64.jar下

  • 该jar包add path

Base64编解码工具类BaseUtil

package Base64Demo;

import java.io.IOException;

import Decoder.BASE64Decoder;
import Decoder.BASE64Encoder;
/*
 *基于"JDK"用法 
 */
public class Base64Util {
    /*
     * 加密过程(编码)  
     * 1、创建BASE64Encoder对象——en
     * 2、调用该对象的encode方法(将一个字节数组的明文进行编码转换为一个字符串)
     * 3、返回字符串
     * Tip:记得先将明文转换为字节数组    
     */
    public static String EncodeBase64(byte[] data) {
        BASE64Encoder en=new BASE64Encoder();
        String str=en.encode(data);
        return str;
    }

    /*
     *解密过程(解码) 
     *1、创建BASE64Decoder对象
     *2、调用该对象的decodeBuffer方法(将编码后的字符串转换为明文的字节数组)
     *3、将明文字节数组转换为相应的字符串
     *4、返回字符串
     */
    public static String DecodeBase64(String data) throws IOException {
        BASE64Decoder de=new BASE64Decoder();
        byte[] ResultByte=de.decodeBuffer(data);
        String str=new String(ResultByte);
        return str;
    }
}

测试类

package Base64Demo;

import java.io.IOException;

import Decoder.BASE64Encoder;

public class Base64Demo01 {

    public static final String DATA="hello";
    public static void main(String[] args) throws IOException {
        byte[] data=DATA.getBytes();
        String BaseResult=Base64Util.EncodeBase64(data);
        System.out.println("加密后:"+BaseResult);

        String str=BaseResult;
        String BaseResult_D=Base64Util.DecodeBase64(str);
        System.out.println("解密后:"+BaseResult_D);
    }

}

JAVA加密算法使用——Base64编程使用(sun和cc)实现编解码工具类


2、commons-codec-1.11.jar下

  • 将commons-codec-1.11.jar包add path

Base64编解码工具类BaseUtil_cc

package Base64Demo;

import org.apache.commons.codec.binary.Base64;
/*
 *基于commons-codec-1.11 
 */

public class Base64Utile_cc {
    /*
     *加密过程 
     */
    public static String EncodeBase64(byte[] data)
    {
        Base64 en=new Base64();
        String str=en.encodeBase64String(data);
        return str;
    }

    /*
     *解密过程 
     */
    public static String DecodeBase64(String str) {
        Base64 de=new Base64();
        byte[] ResultBase=de.decodeBase64(str);
        String str2=new String(ResultBase);
        return str2;
    }

}

测试类

package Base64Demo;

public class Base64Demo02 {
    public static final String DATA="hello";
    public static void main(String[] args) {
        /*
         *基于commons-codec-1.11 
         */
        byte[] data=DATA.getBytes();
        String str=Base64Utile_cc.EncodeBase64(data);
        System.out.println("加密后:"+str);

        String str2=Base64Utile_cc.DecodeBase64(str);
        System.out.println("解密后:"+str2);
    }

}

相应结果和第一种方法是相同的

当然还有其他的jar包可以用,这里就不多做阐述了。