当前位置:   article > 正文

Java实现Base64加密解密_byte[] encodedkey = base64.getdecoder().decode(byt

byte[] encodedkey = base64.getdecoder().decode(bytes)1.7jdk

前言:为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换。编码表的大小为2^6=64,这也是Base64名称的由来,如下是base64编码表:

在这里插入图片描述

1.Base64的作用

Base 64主要用途不是加密,而是把一些二进制数转成普通字符,方便在网络上传输;由于一些二进制字符在传输协议中属于控制字符,不能直接传送,所以需要进行转换;由于某些系统中只能使用ASCII字符,Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法,Base64适合在http,mime协议下快速传输数据,如网络中图片以及表情的传输

Base64并非安全领域下的加密解密算法,base64只能算是一个编码算法,对数据内容进行编码来适合传输

2.Base64的原理

Base64编码方法,要求把每三个8Bit的字节转换为四个6Bit的字节,其中,转换之后的这四个字节中每6个有效bit为是有效数据,空余的那两个 bit用0补上形成8位一个字节的形式;如果剩下的字符不足3个字节,则用0填充,输出字符使用‘=’,因此编码后输出的文本末尾可能会出现1或2个‘=’

举例如下:

三个字节的原始数据为: aaaabbbb ccccdddd eeeeffff

编码之后会变成数据为:00aaaabb 00bbcccc 00ddddee 00eeffff

3.Base64加密解密实现两种方式

算法实现方式:

  • Jdk
  • Commons Codec(需要jar包,案例包:commons-codec-1.10.jar)

Jdk的Base64加密解密

package com.example.base64;
import java.util.Base64;
 
public class Base {

    public static void main(String[] args) {
        String msg = "hello world";
        jdkBase64(msg);
        String msg1 = "你好,王帅帅";
        commonsBase64(msg1);
    }

    /*Jdk加密解密*/
    public static void jdkBase64(String msg){

        /*加密*/
        byte[] bytes = msg.getBytes();
        String encoded  = Base64.getEncoder().encodeToString(bytes);
        System.out.println("加密:"+encoded );

        /*解密*/
        byte[] decoded  = Base64.getDecoder().decode(encoded);
        String decodeStr = new String(decoded);
        System.out.println("解密:"+decodeStr);
    }

    /*commonsCodes的base64加密解密*/
    public static void commonsBase64(String msg){

        /*加密*/
        byte[] encode = org.apache.commons.codec.binary.Base64.encodeBase64(msg.getBytes());
        String encodeStr = new String(encode);
        System.out.println("加密:"+encodeStr);

        /*解密*/
        byte[] decode = org.apache.commons.codec.binary.Base64.decodeBase64(encodeStr.getBytes());
        String decodeStr = new String(decode);
        System.out.println("解密:"+decodeStr);

    }
}

  • 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
  • 38
  • 39
  • 40
  • 41
  • 42

在这里插入图片描述

附:commonsCodes的base64加密解密方式依赖

<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
</dependency>
  • 1
  • 2
  • 3
  • 4

结语:以上就是针对于Base64加密解密的方式,当然不限于以上两种,同时给博友提供一个在线直接转换工具https://base64.supfree.net/欢迎博友留言提问…

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

闽ICP备14008679号