当前位置:   article > 正文

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

base64 sun

该博客打算简单介绍下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;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

测试类

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

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

这里写图片描述


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;
    }

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

测试类

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

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/202939?site
推荐阅读
相关标签
  

闽ICP备14008679号