当前位置:   article > 正文

加密算法之Base64初探_base64.getdecoder().decode

base64.getdecoder().decode

前言

        本章讲解加密算法初探之Base64

方法

1、概念

        Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。
        Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。
        Base64由于以上优点被广泛应用于计算机的各个领域,然而由于输出内容中包括两个以上“符号类”字符(+, /, =),不同的应用场景又分别研制了Base64的各种“变种”。为统一和规范化Base64的输出,Base62x被视为无符号化的改进版本。

        从以上的概念中我们不难看出,Base64实际上是一种编码方式,而不是严格意义上的加密算法,但可以作为学习加密算法起到一定的铺垫作用。

2、Base64编码原理

        在了解Base64之前,需要了解ASCII码的相关内容(在计算机中,所有的数据在存储和运算时都要使用二进制数表示,简单来说ASCII码就是现实世界语言文字与计算机语言交流的规范,现实世界的语言都可以使用ASCII码进行标识)。

如:China这个单词,参照ASCII代码表其ASCII码十进制表示为:67 104 105 110 97

那么如何将China这个单词使用Base64编码呢?

第一步:首先将China单词转化为ASCII码的二进制表示方式

第二步:每6个bit为一组进行分组,需要注意的是 将以前8bit一组的数据拆分成6bit一组的数据,很可能会发生位数不足的情况,位数不足我们需要在后面补0,同时确保均匀分组(分组后位数为6和8的公倍数),没有对应上数据的分组用 “=”表示。

第三步:将新的分组前面补充00至8bit,参照Base64编码表得出Base64编码串

以China为例,详细步骤如下:

由于China只有5*8=40bit,以6bit分组时务必确保是6和8的公倍数,所以以6bit分组后数据达到了48bit(含补位和未对应分组)

China的最终Base64编码为:Q2hpbmE=

以下是Base64编码对照表: 

3、注意事项

  • 通过上面的描述,我们知道Base64算不上是一种加密算法,其实也就是一种编码的方式,不能用于诸如密码等重要数据的加密,将直接破解
  • 中文有多种编码(比如:utf-8、gb2312、gbk等),不同编码对应Base64编码结果都不一样
  • 由于其优势,广泛的应用于网络传输,如图片数据等

4、Java实现Base64编码

  1. package cn.edu.ccut;
  2. import java.util.Base64;
  3. public class Base64Test {
  4. public static void main(String[] args) throws Exception {
  5. String str = "China";
  6. base64(str);
  7. }
  8. public static void base64(String str) {
  9. byte[] bytes = str.getBytes();
  10. //Base64 加密
  11. String encoded = Base64.getEncoder().encodeToString(bytes);
  12. System.out.println("Base 64 加密后:" + encoded);
  13. //Base64 解密
  14. byte[] decoded = Base64.getDecoder().decode(encoded);
  15. String decodeStr = new String(decoded);
  16. System.out.println("Base 64 解密后:" + decodeStr);
  17. System.out.println();
  18. }
  19. }

运行结果如下:

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/881691
推荐阅读
相关标签
  

闽ICP备14008679号