zoukankan      html  css  js  c++  java
  • Base64编码

    Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一.

    Base64的转换原理是:

    把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。
    Base64编码规则:
    Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码。它将需要编码的数据拆分成字节数组。以3个字节为一组。按顺序排列24 位数据,再把这24位数据分成4组,即每组6位。再在每组的的最高位前补两个0凑足一个字节。这样就把一个3字节为一组的数据重新编码成了4个字节。当所要编码的数据的字节数不是3的整倍数,也就是说在分组时最后一组不够3个字节。这时在最后一组填充1到2个0字节。并在最后编码完成后在结尾添加1到2个 “=”,因为:
          余数 = 原文字节数 MOD 3 
    所以余数任何情况下都只可能是0,1,2这三个数中的一个。如果余数是0的话,就表示原文字节数正好是3的倍数(最理想的情况啦)。如果是1的话,为了让Base64编码是3的倍数,就要补2个等号;同理,如果是2的话,就要补1个等号。

    举例如:字符串“Test“

    对应的ASCII二进制码分别为: 01010100  01100101  01110011  01110100

    按其编码规则将分为两组

    组一:01010100  01100101  01110011

    组二:01110100  00000000  00000000

    对组一进行转换:00010101  00000110  00010101  00110011

          对应十进制:    21                6              21           51

    对组二进行转换:00011101  00000000

          对应十进制:    29               0

    Base64编码转换表:
    索引 对应字符 索引 对应字符 索引 对应字符 索引 对应字符
    0 A 17 R 34 i 51 z
    1 B 18 S 35 j 52 0
    2 C 19 T 36 k 53 1
    3 D 20 U 37 l 54 2
    4 E 21 V 38 m 55 3
    5 F 22 W 39 n 56 4
    6 G 23 X 40 o 57 5
    7 H 24 Y 41 p 58 6
    8 I 25 Z 42 q 59 7
    9 J 26 a 43 r 60 8
    10 K 27 b 44 s 61 9
    11 L 28 c 45 t 62 +
    12 M 29 d 46 u 63 /
    13 N 30 e 47 v

    14 O 31 f 48 w

    15 P 32 g 49 x

    16 Q 33 h 50 y

     由Base64转换规则和以上Base64编码转换表得到转换后值为:VGVzdA==  
  • 相关阅读:
    Springboot Endpoint之二:Endpoint源码剖析
    Linux进程被杀掉(OOM killer),查看系统日志
    docker常用命令详解
    micrometer自定义metrics
    使有prometheus监控redis,mongodb,nginx,mysql,jmx
    Grafana+Prometheus打造springboot监控平台
    Grafana介绍
    Prometheus介绍
    Groovy与Java集成常见的坑
    ES之1:基本概念及原理
  • 原文地址:https://www.cnblogs.com/chenyt/p/2014791.html
Copyright © 2011-2022 走看看