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

该博客打算简单介绍下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=”

这里写图片描述

下面是Base64编码表(密钥)

这里写图片描述


二、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);
    }

}

这里写图片描述


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包可以用,这里就不多做阐述了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值