base64位加密解密原理及js代码实现
在网上找了很多关于Base64加密解密的原理以一个比较通俗易懂的方式理解整理了一下大致原理如下 先上base64对照表

#加密
#1:将明文对照以acsii码表转换成一个8位二进制的数
#2:将转换后的数据已每次取六位依次取出来转换成十进制
#3:将转换出来的十进制数对照Base64对应表转换成字符
来个实例 如加密 asd

加密后的结果即YWJz 上面的加密是3个字母进行加密刚好24位是6的倍数。也有不是6的倍数的情况。这种情况下需要加0补充到6位,还需要注意的是。在剩余位数不是8的倍数的情况下需要补等号凑齐8的倍数。(至于为什么要补等号还是理解不了)一个等号也是按6位处理,剩余2位时补一个等号 剩余4位时补两个等号

加密后的结果即YWI=
#解密
了解了加密原理后逆向解密的原理也就很容易弄懂了。将密文按照对照表获得十进制数,将十进制转换成二进制取低六位整合在一起后八位八位的取进行解密即可
对YWJz进行解密
Y => 24 => 00011000
W => 22 => 00010110
J => 9 => 00001001
z => 57 => 00111001
各取低六位组合在一起的结果:011000 010110 001001 111001
依次取8位的结果:01100001 01100010 011111001
转换为十进制的结果:98 98 115 =>abs
上面的解密是密文中不带=的,对于密文中带=直接将=去除掉即可
如解密YWI=
Y => 24 => 00011000 W => 22 => 00010110 I => 8 => 00000100
各取低六位组合在一起的结果:011000 010110 001000
依次取8位的结果:01100001 01100010 00(舍去即可)
转换为十进制的结果:97 98 =>ab