原创博文,欢迎转载,转载时请务必附上博文链接,感谢您的尊重。
前言
急于现在、立刻、马上解决问题的同学,请直接拉到最下面的【五、总结】!!!
通过本篇的学习,你将学会Base64的基本概念,优缺点,常用的编码、解码方法,以及项目中的实战使用。
更多使用Base64编码的原因,以及实际使用Demo,请看我另一篇博文:详解AES、MD5加密算法的区别和实现,包含Utils类
更多使用Base64的方法,以及实战用法,请看我另一篇博文:Java Base64工具类,提供常用(文件、图片、PDF、URL)转换方法(原创博文,欢迎转载)
一、Base64是什么?
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,是一种用64个字符来表示任意二进制数据的方法;
Base64编码不仅比较简短,同时也具有不可读性,即所编码的数据不会被人用肉眼所直接看到,但这种方式很初级,很简单;
Base64只是一种通过查表的编码算法,不是安全领域下的加解密算法,所以不能单独用于加密,即使使用自定义的编码表也不行;
Base64的编码与解码,只是字符到二进制与二进制到字符的过程,所以特别适用于小段内容的编码,比如http、数字证书签名、Cookie的内容等。
注意,UTF-8和GBK中文格式的Base64编码结果是不同的。
二、原理
Base64的原理很简单,首先,准备一个包含64个字符的数组:['A', 'B', 'C', ... 'a', 'b', 'c', ... '0', '1', ... '+', '/']
然后,对二进制数据进行处理,每3个字节一组,一共是3x8=24
bit,划为4组,