概述
什么是Base64
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,Base64并不是安全领域的加密算法,其实Base64只能算是一个编码算法,对数据内容进行编码来适合传输。标准Base64编码解码无需额外信息即完全可逆,即使你自己自定义字符集设计一种类Base64的编码方式用于数据加密,在多数场景下也较容易破解。Base64编码本质上是一种将二进制数据转成文本数据的方案。
对于非二进制数据,是先将其转换成二进制形式,然后每连续6比特(2的6次方=64)
计算其十进制值,根据该值在A–Z,a–z,0–9,+,/ 这64个字符中找到对应的字符,
最终得到一个文本字符串。基本规则如下几点:
-
标准Base64只有64个字符(英文大小写、数字和+、/)以及用作后缀等号;
-
Base64是把3个字节变成4个可打印字符,所以Base64编码后的字符串一定能被4整除(不算用作后缀的等号);
-
等号一定用作后缀,且数目一定是0个、1个或2个。这是因为如果原文长度不能被3整除,Base64要在后面添加 凑齐3n位。为了正确还原,添加了几个 就加上几个等号。显然添加等号的数目只能是0、1或2;
-
严格来说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加密所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复