中易网

关于java中BASE64解码算法

答案:2  悬赏:50  
解决时间 2021-03-09 04:02
编码过程,在网上一篇文章大概是如下描述:
第一个字符通过右移2位获得第一个目标字符的Base64表位置,根据这个数值取到表上相应的字符,就是第一个目标字符。
然后将第一个字符左移4位加上第二个字符右移4位,即获得第二个目标字符。
再将第二个字符左移2位加上第三个字符右移6位,获得第三个目标字符。
最后取第三个字符的右6位即获得第四个目标字符。
在以上的每一个步骤之后,再把结果与 0x3F 进行 AND 位操作,就可以得到编码后的字符了。

这个过程不懂,请高人解释下,谢谢
最佳答案
让我们再来看一个实际的例子,加深印象!

转换前 10101101 10111010 01110110
转换后 00101011 00011011 00101001 00110110
十进制 43 27 41 54
对应码表中的值 r b p 2
将第一个字符右移2位得00101011, 得第一个目标字符00101011
将第一个字符左移4位得11010000,第二个字符右移4位的00001011相加得第二个目标字符11011011
将第二个字符左移2位得11101000,第三个字符右移6位的00000001相加的第三个目标字符11101001
第四个目标字符就是01110110
然后让各个目标字符与0x3F进行and位操作,让最高的两位为零。
全部回答
import sun.misc.base64encoder;  import sun.misc.base64decoder;  // 将 s 进行 base64 编码  public static string getbase64(string s) {  if (s == null) return null;  return (new sun.misc.base64encoder()).encode( s.getbytes() );  }  // 将 base64 编码的字符串 s 进行解码  public static string getfrombase64(string s) {  if (s == null) return null;  base64decoder decoder = new base64decoder();  try {  byte[] b = decoder.decodebuffer(s);  return new string(b);  } catch (exception e) {  return null;  }  }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
属羊的女孩应该和哪种属相的男孩配对
我在柯桥齐贤有两间老房子,因为本人不在那边
白族村菜馆这个地址在什么地方,我要处理点事
excel表格的公式设置中复合单位如何运算
风批头尺寸一般是多少
路由器设置静态ip里的默认网关该填什么毫无头
cad插件中那个软件和常青藤的功能差不多呀
汇泳源商贸有限责任公司我想知道这个在什么地
韩剧《需要浪漫3》里面的一首英文插曲歌词里
能介绍一下“大东翔搏击俱乐部”吗?
如何使左手更有力更灵活
电带棉花糖机没温度怎么回事?不出糖丝,没温
老凤祥银楼电子正街店地址在哪,我要去那里办
总统千金欧游记高清完整版下载地址
为探究CO2与NaOH溶液能发生化学反应,甲、乙
推荐资讯
下载了个ae素材,找不到里面的图片,求高手帮
韩国走性感路线的美少女组合有哪些?
什么人出生时命里独来
请问盐碱地与黑土地的区别?
我买的楼 是18层 吉利吗?
微信上做代理能挣钱吗
求视频:幼儿故事小河马找长处
打篮球争球时怎么知道哪是自己的篮筐
兰亭自助烧烤多少钱一个人
遗嘱执行人可否同是继承人
小轿车L代表什么?
新平彝族傣族自治县人民医院-心理咨询室这个
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?