java:关于base64编码求解
发布时间:2025-05-20 04:24:37 发布人:远客网络
一、java:关于base64编码求解
首先base64是对字节码进行再次编码,所以要先把你这个字符转成二进行码(不过对于英文字母来说,转成的二进制码都是一样的,就没关系了)。'a'对应的二进制码为01000001(65),而base64是每6位编成一个字符(base64字符),则把此二进制码分成2段,第一段是010000,第二段是01(0000不足位补0),这两个不是一样的吗,值为16,对应第17个大写字母(0对应A),那自然是两个Q了,而base64编码至少编出4个字符(因为给3个字符来编码,一个6位,3个24位,6位一编码,正好编出4个,反过来自然是4个解码成3个)。另外这个编码过程本来就是它的原理,原理图如下,只要明白了原理才知道倒底怎么编。
二、关于java中BASE64解码算法
1、让我们再来看一个实际的例子,加深印象!
2、转换前 10101101 10111010 01110110
3、转换后 00101011 00011011 00101001 00110110
4、将第一个字符右移2位得00101011,得第一个目标字符00101011
5、将第一个字符左移4位得11010000,第二个字符右移4位的00001011相加得第二个目标字符11011011
6、将第二个字符左移2位得11101000,第三个字符右移6位的00000001相加的第三个目标字符11101001
7、然后让各个目标字符与0x3F进行and位操作,让最高的两位为零。
三、Java里,,什么是二进制 什么是base64他们有什么区别
1、二进制就是逢二进一,而我们习惯的是十进制,就是逢十进一,其实就是平时计数的时候用的符号不一样,十进制是(0~9)10个符号,而二进制只有0和1两个,因为当超过1的时候就会产生进位,比如二进制加法1+1=10(注意不要和十进制的十混淆,这个是二进制一零,等于十进制的二)。
2、至于base64就是一套加密算法呗,有点类似于数学的某个公式,你把你的数字输入到这个公式就会产生另外一个数字,加密就是把你的信息按照一定的方法转换成别的信息,如果不知道解密方法,是无法理解信息的内容的,大概就是这样的意思。还不理解请追问