我是靠谱客的博主 清新鼠标,最近开发中收集的这篇文章主要介绍Base64加密,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

什么是Base64

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,Base64并不是安全领域的加密算法,其实Base64只能算是一个编码算法,对数据内容进行编码来适合传输。标准Base64编码解码无需额外信息即完全可逆,即使你自己自定义字符集设计一种类Base64的编码方式用于数据加密,在多数场景下也较容易破解。Base64编码本质上是一种将二进制数据转成文本数据的方案。

对于非二进制数据,是先将其转换成二进制形式,然后每连续6比特(2的6次方=64)
计算其十进制值,根据该值在A–Z,a–z,0–9,+,/ 这64个字符中找到对应的字符,
最终得到一个文本字符串。基本规则如下几点:

  1. 标准Base64只有64个字符(英文大小写、数字和+、/)以及用作后缀等号;

  2. Base64是把3个字节变成4个可打印字符,所以Base64编码后的字符串一定能被4整除(不算用作后缀的等号);

  3. 等号一定用作后缀,且数目一定是0个、1个或2个。这是因为如果原文长度不能被3整除,Base64要在后面添加凑齐3n位。为了正确还原,添加了几个就加上几个等号。显然添加等号的数目只能是0、1或2;

  4. 严格来说Base64不能算是一种加密,只能说是编码转换。。

Base64的编码多占用了1/3的字节长度,以此实现更好的兼容性

示例

import java.util.Base64;

public class Test01 {
    public static void main(String[] args) {
    	//得到编码器
        Base64.Encoder encoder = Base64.getEncoder();
        String data = "罗罗诺亚";
        //加密
        byte[] bytes = encoder.encode(data.getBytes());
        //源码已经弃用
        //String encode = encoder.encodeToString(data.getBytes());
        System.out.println(new String(bytes));
		//得到解码器
        Base64.Decoder decoder = Base64.getDecoder();
        //解密
        byte[] decode = decoder.decode(bytes);
        System.out.println(new String(decode));
    }
}
"C:Program FilesJavajdk1.8.0_144binjava.exe" "-javaagent:F:MyDirIDEAIDEA2018IntelliJ IDEA 2018.2.4libidea_rt.jar=63699:F:MyDirIDEAIDEA2018IntelliJ IDEA 2018.2.4bin" -Dfile.encoding=UTF-8 -classpath "C:Program FilesJavajdk1.8.0_144jrelibcharsets.jar;C:Program FilesJavajdk1.8.0_144jrelibdeploy.jar;C:Program FilesJavajdk1.8.0_144jrelibplugin.jar;C:Program FilesJavajdk1.8.0_144jrelibresources.jar;C:Program FilesJavajdk1.8.0_144jrelibrt.jar;E:idea_workplacejavaBasetargetclasses" 
572X572X6K+65Lqa
罗罗诺亚

Process finished with exit code 0

最后

以上就是清新鼠标为你收集整理的Base64加密的全部内容,希望文章能够帮你解决Base64加密所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部