[size=xx-large][b]一、 BASE64编码[/b][/size]
把byte[]中的元素当做无符号八位整数转换成只含有64个基本字符的字符串,这些基本字符是:
l 大写的A-Z
l 小写的a-z
l 数字0-9
l '+' 和 '/'
这64个字符构成BASE64的字符集。‘=’,为填充字符,结尾处可以填充0-2个填充字符
Base64是将原文按照每 3 个字节一组分开,这个 3 字节组中的每一组将被按照位分解成 4 个部分,每个部分 6 个位,在这 4 个部分的每个部分高位加上 2 个 0构成一个新的 4 字节组,新的字节组中,每个字节只有 6 位,能表示64个值。
在原文在转换为BASE64编码时,试是以3个字节为一组转换成4字节一组的BASE64编码。如果原文不是三字节的倍数,可能多出一个字节和两个字节,分别会被转为2字节和3字节的BASE64编码,这时编码系统应该在形成的BASE64编码最后添加上填充符”=”,保证BASE64编码长度是4的倍数。所以在BASE64编码后添加的填充符”=”可能为0-2个。
BASE64编码对照表如下:
[table]
<table style="width: 600px; background-color: #ccccff;" border="0" cellspacing="1" cellpadding="2">
<tbody>
<tr>
<td style="background-color:#FFFFFF; text-align:center">索引</td>
<td style="background-color:#FFFFFF; text-align:center">对应字符</td>
<td style="background-color:#FFFFFF; text-align:center">索引</td>
<td style="background-color:#FFFFFF; text-align:center">对应字符</td>
<td style="background-color:#FFFFFF; text-align:center">索引</td>
<td style="background-color:#FFFFFF; text-align:center">对应字符</td>
<td style="background-color:#FFFFFF; text-align:center">索引</td>
<td style="background-color:#FFFFFF; text-align:center">对应字符</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">0</td>
<td style="background-color:#FFFFFF; text-align:center">A</td>
<td style="background-color:#FFFFFF; text-align:center">17</td>
<td style="background-color:#FFFFFF; text-align:center">R</td>
<td style="background-color:#FFFFFF; text-align:center">34</td>
<td style="background-color:#FFFFFF; text-align:center">i</td>
<td style="background-color:#FFFFFF; text-align:center">51</td>
<td style="background-color:#FFFFFF; text-align:center">z</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">1</td>
<td style="background-color:#FFFFFF; text-align:center">B</td>
<td style="background-color:#FFFFFF; text-align:center">18</td>
<td style="background-color:#FFFFFF; text-align:center">S</td>
<td style="background-color:#FFFFFF; text-align:center">35</td>
<td style="background-color:#FFFFFF; text-align:center">j</td>
<td style="background-color:#FFFFFF; text-align:center">52</td>
<td style="background-color:#FFFFFF; text-align:center">0</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">2</td>
<td style="background-color:#FFFFFF; text-align:center">C</td>
<td style="background-color:#FFFFFF; text-align:center">19</td>
<td style="background-color:#FFFFFF; text-align:center">T</td>
<td style="background-color:#FFFFFF; text-align:center">36</td>
<td style="background-color:#FFFFFF; text-align:center">k</td>
<td style="background-color:#FFFFFF; text-align:center">53</td>
<td style="background-color:#FFFFFF; text-align:center">1</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">3</td>
<td style="background-color:#FFFFFF; text-align:center">D</td>
<td style="background-color:#FFFFFF; text-align:center">20</td>
<td style="background-color:#FFFFFF; text-align:center">U</td>
<td style="background-color:#FFFFFF; text-align:center">37</td>
<td style="background-color:#FFFFFF; text-align:center">l</td>
<td style="background-color:#FFFFFF; text-align:center">54</td>
<td style="background-color:#FFFFFF; text-align:center">2</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">4</td>
<td style="background-color:#FFFFFF; text-align:center">E</td>
<td style="background-color:#FFFFFF; text-align:center">21</td>
<td style="background-color:#FFFFFF; text-align:center">V</td>
<td style="background-color:#FFFFFF; text-align:center">38</td>
<td style="background-color:#FFFFFF; text-align:center">m</td>
<td style="background-color:#FFFFFF; text-align:center">55</td>
<td style="background-color:#FFFFFF; text-align:center">3</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">5</td>
<td style="background-color:#FFFFFF; text-align:center">F</td>
<td style="background-color:#FFFFFF; text-align:center">22</td>
<td style="background-color:#FFFFFF; text-align:center">W</td>
<td style="background-color:#FFFFFF; text-align:center">39</td>
<td style="background-color:#FFFFFF; text-align:center">n</td>
<td style="background-color:#FFFFFF; text-align:center">56</td>
<td style="background-color:#FFFFFF; text-align:center">4</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">6</td>
<td style="background-color:#FFFFFF; text-align:center">G</td>
<td style="background-color:#FFFFFF; text-align:center">23</td>
<td style="background-color:#FFFFFF; text-align:center">X</td>
<td style="background-color:#FFFFFF; text-align:center">40</td>
<td style="background-color:#FFFFFF; text-align:center">o</td>
<td style="background-color:#FFFFFF; text-align:center">57</td>
<td style="background-color:#FFFFFF; text-align:center">5</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">7</td>
<td style="background-color:#FFFFFF; text-align:center">H</td>
<td style="background-color:#FFFFFF; text-align:center">24</td>
<td style="background-color:#FFFFFF; text-align:center">Y</td>
<td style="background-color:#FFFFFF; text-align:center">41</td>
<td style="background-color:#FFFFFF; text-align:center">p</td>
<td style="background-color:#FFFFFF; text-align:center">58</td>
<td style="background-color:#FFFFFF; text-align:center">6</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">8</td>
<td style="background-color:#FFFFFF; text-align:center">I</td>
<td style="background-color:#FFFFFF; text-align:center">25</td>
<td style="background-color:#FFFFFF; text-align:center">Z</td>
<td style="background-color:#FFFFFF; text-align:center">42</td>
<td style="background-color:#FFFFFF; text-align:center">q</td>
<td style="background-color:#FFFFFF; text-align:center">59</td>
<td style="background-color:#FFFFFF; text-align:center">7</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">9</td>
<td style="background-color:#FFFFFF; text-align:center">J</td>
<td style="background-color:#FFFFFF; text-align:center">26</td>
<td style="background-color:#FFFFFF; text-align:center">a</td>
<td style="background-color:#FFFFFF; text-align:center">43</td>
<td style="background-color:#FFFFFF; text-align:center">r</td>
<td style="background-color:#FFFFFF; text-align:center">60</td>
<td style="background-color:#FFFFFF; text-align:center">8</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">10</td>
<td style="background-color:#FFFFFF; text-align:center">K</td>
<td style="background-color:#FFFFFF; text-align:center">27</td>
<td style="background-color:#FFFFFF; text-align:center">b</td>
<td style="background-color:#FFFFFF; text-align:center">44</td>
<td style="background-color:#FFFFFF; text-align:center">s</td>
<td style="background-color:#FFFFFF; text-align:center">61</td>
<td style="background-color:#FFFFFF; text-align:center">9</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">11</td>
<td style="background-color:#FFFFFF; text-align:center">L</td>
<td style="background-color:#FFFFFF; text-align:center">28</td>
<td style="background-color:#FFFFFF; text-align:center">c</td>
<td style="background-color:#FFFFFF; text-align:center">45</td>
<td style="background-color:#FFFFFF; text-align:center">t</td>
<td style="background-color:#FFFFFF; text-align:center">62</td>
<td style="background-color:#FFFFFF; text-align:center">+</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">12</td>
<td style="background-color:#FFFFFF; text-align:center">M</td>
<td style="background-color:#FFFFFF; text-align:center">29</td>
<td style="background-color:#FFFFFF; text-align:center">d</td>
<td style="background-color:#FFFFFF; text-align:center">46</td>
<td style="background-color:#FFFFFF; text-align:center">u</td>
<td style="background-color:#FFFFFF; text-align:center">63</td>
<td style="background-color:#FFFFFF; text-align:center">/</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">13</td>
<td style="background-color:#FFFFFF; text-align:center">N</td>
<td style="background-color:#FFFFFF; text-align:center">30</td>
<td style="background-color:#FFFFFF; text-align:center">e</td>
<td style="background-color:#FFFFFF; text-align:center">47</td>
<td style="background-color:#FFFFFF; text-align:center">v</td>
<td style="background-color:#FFFFFF; text-align:center"> </td>
<td style="background-color:#FFFFFF; text-align:center"> </td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">14</td>
<td style="background-color:#FFFFFF; text-align:center">O</td>
<td style="background-color:#FFFFFF; text-align:center">31</td>
<td style="background-color:#FFFFFF; text-align:center">f</td>
<td style="background-color:#FFFFFF; text-align:center">48</td>
<td style="background-color:#FFFFFF; text-align:center">w</td>
<td style="background-color:#FFFFFF; text-align:center"> </td>
<td style="background-color:#FFFFFF; text-align:center"> </td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">15</td>
<td style="background-color:#FFFFFF; text-align:center">P</td>
<td style="background-color:#FFFFFF; text-align:center">32</td>
<td style="background-color:#FFFFFF; text-align:center">g</td>
<td style="background-color:#FFFFFF; text-align:center">49</td>
<td style="background-color:#FFFFFF; text-align:center">x</td>
<td style="background-color:#FFFFFF; text-align:center"> </td>
<td style="background-color:#FFFFFF; text-align:center"> </td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">16</td>
<td style="background-color:#FFFFFF; text-align:center">Q</td>
<td style="background-color:#FFFFFF; text-align:center">33</td>
<td style="background-color:#FFFFFF; text-align:center">h</td>
<td style="background-color:#FFFFFF; text-align:center">50</td>
<td style="background-color:#FFFFFF; text-align:center">y</td>
<td style="background-color:#FFFFFF; text-align:center"> </td>
<td style="background-color:#FFFFFF; text-align:center"> </td>
</tr>
</tbody>
</table>
[/table]
2.Base64的优势。
编码解码速度快。
具有一定的加密效果。
实现简单。
编码解码速度快。
3.实现原理。
Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,因此, 转换后的字节一定会落在区间[0-64)当中,故此可以找到对应基本字符表示此字节,转换后的字符串理论上将要比原来的长1/3。
我们来看一个例子。
转换前:10101111 01101011 11001101
转换后:00101011 00110110 00101111 00001101
编码转换规则:
用指定的编码对字符串进行解码,得到解码后的字节数组。
按照规则把每3个字节转换为4个Base64基本字符。
处理最后的字节
剩余的字节为0,编码转换结束。
剩余的字节为1,把当前字节按照规则转换为Base64前两个字符,后面两位用'='补齐,编码转换结束。
剩余的字节为1,把当前字节按照规则转换为Base64前三个字符,最后一位用'='补齐,编码转换结束。
得到编码后的Base64 String。
解码转换规则:
准备好需要解码的Base64 String。
每4个一组,转换为对应的3个字节。
处理最后剩余的字符。
得到解码后的字节数组。
4.通用的编码传输解决方案。
使用UTF-8对需要传输的String进行编码,得到编码后的字节数组。
用Base64对字节数组进行编码,得到Base64 String。
传输编码后的Base64 String。
接收到传输到字节数组, 如果是字节数组,用本地编码对其进行解码即可,得到Base64 String。
用Base64对 Base64 String 进行解码,得到字节数组。
用UTF-8对字节数组进行解码,得到最终被传输的String。
把byte[]中的元素当做无符号八位整数转换成只含有64个基本字符的字符串,这些基本字符是:
l 大写的A-Z
l 小写的a-z
l 数字0-9
l '+' 和 '/'
这64个字符构成BASE64的字符集。‘=’,为填充字符,结尾处可以填充0-2个填充字符
Base64是将原文按照每 3 个字节一组分开,这个 3 字节组中的每一组将被按照位分解成 4 个部分,每个部分 6 个位,在这 4 个部分的每个部分高位加上 2 个 0构成一个新的 4 字节组,新的字节组中,每个字节只有 6 位,能表示64个值。
在原文在转换为BASE64编码时,试是以3个字节为一组转换成4字节一组的BASE64编码。如果原文不是三字节的倍数,可能多出一个字节和两个字节,分别会被转为2字节和3字节的BASE64编码,这时编码系统应该在形成的BASE64编码最后添加上填充符”=”,保证BASE64编码长度是4的倍数。所以在BASE64编码后添加的填充符”=”可能为0-2个。
BASE64编码对照表如下:
[table]
<table style="width: 600px; background-color: #ccccff;" border="0" cellspacing="1" cellpadding="2">
<tbody>
<tr>
<td style="background-color:#FFFFFF; text-align:center">索引</td>
<td style="background-color:#FFFFFF; text-align:center">对应字符</td>
<td style="background-color:#FFFFFF; text-align:center">索引</td>
<td style="background-color:#FFFFFF; text-align:center">对应字符</td>
<td style="background-color:#FFFFFF; text-align:center">索引</td>
<td style="background-color:#FFFFFF; text-align:center">对应字符</td>
<td style="background-color:#FFFFFF; text-align:center">索引</td>
<td style="background-color:#FFFFFF; text-align:center">对应字符</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">0</td>
<td style="background-color:#FFFFFF; text-align:center">A</td>
<td style="background-color:#FFFFFF; text-align:center">17</td>
<td style="background-color:#FFFFFF; text-align:center">R</td>
<td style="background-color:#FFFFFF; text-align:center">34</td>
<td style="background-color:#FFFFFF; text-align:center">i</td>
<td style="background-color:#FFFFFF; text-align:center">51</td>
<td style="background-color:#FFFFFF; text-align:center">z</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">1</td>
<td style="background-color:#FFFFFF; text-align:center">B</td>
<td style="background-color:#FFFFFF; text-align:center">18</td>
<td style="background-color:#FFFFFF; text-align:center">S</td>
<td style="background-color:#FFFFFF; text-align:center">35</td>
<td style="background-color:#FFFFFF; text-align:center">j</td>
<td style="background-color:#FFFFFF; text-align:center">52</td>
<td style="background-color:#FFFFFF; text-align:center">0</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">2</td>
<td style="background-color:#FFFFFF; text-align:center">C</td>
<td style="background-color:#FFFFFF; text-align:center">19</td>
<td style="background-color:#FFFFFF; text-align:center">T</td>
<td style="background-color:#FFFFFF; text-align:center">36</td>
<td style="background-color:#FFFFFF; text-align:center">k</td>
<td style="background-color:#FFFFFF; text-align:center">53</td>
<td style="background-color:#FFFFFF; text-align:center">1</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">3</td>
<td style="background-color:#FFFFFF; text-align:center">D</td>
<td style="background-color:#FFFFFF; text-align:center">20</td>
<td style="background-color:#FFFFFF; text-align:center">U</td>
<td style="background-color:#FFFFFF; text-align:center">37</td>
<td style="background-color:#FFFFFF; text-align:center">l</td>
<td style="background-color:#FFFFFF; text-align:center">54</td>
<td style="background-color:#FFFFFF; text-align:center">2</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">4</td>
<td style="background-color:#FFFFFF; text-align:center">E</td>
<td style="background-color:#FFFFFF; text-align:center">21</td>
<td style="background-color:#FFFFFF; text-align:center">V</td>
<td style="background-color:#FFFFFF; text-align:center">38</td>
<td style="background-color:#FFFFFF; text-align:center">m</td>
<td style="background-color:#FFFFFF; text-align:center">55</td>
<td style="background-color:#FFFFFF; text-align:center">3</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">5</td>
<td style="background-color:#FFFFFF; text-align:center">F</td>
<td style="background-color:#FFFFFF; text-align:center">22</td>
<td style="background-color:#FFFFFF; text-align:center">W</td>
<td style="background-color:#FFFFFF; text-align:center">39</td>
<td style="background-color:#FFFFFF; text-align:center">n</td>
<td style="background-color:#FFFFFF; text-align:center">56</td>
<td style="background-color:#FFFFFF; text-align:center">4</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">6</td>
<td style="background-color:#FFFFFF; text-align:center">G</td>
<td style="background-color:#FFFFFF; text-align:center">23</td>
<td style="background-color:#FFFFFF; text-align:center">X</td>
<td style="background-color:#FFFFFF; text-align:center">40</td>
<td style="background-color:#FFFFFF; text-align:center">o</td>
<td style="background-color:#FFFFFF; text-align:center">57</td>
<td style="background-color:#FFFFFF; text-align:center">5</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">7</td>
<td style="background-color:#FFFFFF; text-align:center">H</td>
<td style="background-color:#FFFFFF; text-align:center">24</td>
<td style="background-color:#FFFFFF; text-align:center">Y</td>
<td style="background-color:#FFFFFF; text-align:center">41</td>
<td style="background-color:#FFFFFF; text-align:center">p</td>
<td style="background-color:#FFFFFF; text-align:center">58</td>
<td style="background-color:#FFFFFF; text-align:center">6</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">8</td>
<td style="background-color:#FFFFFF; text-align:center">I</td>
<td style="background-color:#FFFFFF; text-align:center">25</td>
<td style="background-color:#FFFFFF; text-align:center">Z</td>
<td style="background-color:#FFFFFF; text-align:center">42</td>
<td style="background-color:#FFFFFF; text-align:center">q</td>
<td style="background-color:#FFFFFF; text-align:center">59</td>
<td style="background-color:#FFFFFF; text-align:center">7</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">9</td>
<td style="background-color:#FFFFFF; text-align:center">J</td>
<td style="background-color:#FFFFFF; text-align:center">26</td>
<td style="background-color:#FFFFFF; text-align:center">a</td>
<td style="background-color:#FFFFFF; text-align:center">43</td>
<td style="background-color:#FFFFFF; text-align:center">r</td>
<td style="background-color:#FFFFFF; text-align:center">60</td>
<td style="background-color:#FFFFFF; text-align:center">8</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">10</td>
<td style="background-color:#FFFFFF; text-align:center">K</td>
<td style="background-color:#FFFFFF; text-align:center">27</td>
<td style="background-color:#FFFFFF; text-align:center">b</td>
<td style="background-color:#FFFFFF; text-align:center">44</td>
<td style="background-color:#FFFFFF; text-align:center">s</td>
<td style="background-color:#FFFFFF; text-align:center">61</td>
<td style="background-color:#FFFFFF; text-align:center">9</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">11</td>
<td style="background-color:#FFFFFF; text-align:center">L</td>
<td style="background-color:#FFFFFF; text-align:center">28</td>
<td style="background-color:#FFFFFF; text-align:center">c</td>
<td style="background-color:#FFFFFF; text-align:center">45</td>
<td style="background-color:#FFFFFF; text-align:center">t</td>
<td style="background-color:#FFFFFF; text-align:center">62</td>
<td style="background-color:#FFFFFF; text-align:center">+</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">12</td>
<td style="background-color:#FFFFFF; text-align:center">M</td>
<td style="background-color:#FFFFFF; text-align:center">29</td>
<td style="background-color:#FFFFFF; text-align:center">d</td>
<td style="background-color:#FFFFFF; text-align:center">46</td>
<td style="background-color:#FFFFFF; text-align:center">u</td>
<td style="background-color:#FFFFFF; text-align:center">63</td>
<td style="background-color:#FFFFFF; text-align:center">/</td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">13</td>
<td style="background-color:#FFFFFF; text-align:center">N</td>
<td style="background-color:#FFFFFF; text-align:center">30</td>
<td style="background-color:#FFFFFF; text-align:center">e</td>
<td style="background-color:#FFFFFF; text-align:center">47</td>
<td style="background-color:#FFFFFF; text-align:center">v</td>
<td style="background-color:#FFFFFF; text-align:center"> </td>
<td style="background-color:#FFFFFF; text-align:center"> </td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">14</td>
<td style="background-color:#FFFFFF; text-align:center">O</td>
<td style="background-color:#FFFFFF; text-align:center">31</td>
<td style="background-color:#FFFFFF; text-align:center">f</td>
<td style="background-color:#FFFFFF; text-align:center">48</td>
<td style="background-color:#FFFFFF; text-align:center">w</td>
<td style="background-color:#FFFFFF; text-align:center"> </td>
<td style="background-color:#FFFFFF; text-align:center"> </td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">15</td>
<td style="background-color:#FFFFFF; text-align:center">P</td>
<td style="background-color:#FFFFFF; text-align:center">32</td>
<td style="background-color:#FFFFFF; text-align:center">g</td>
<td style="background-color:#FFFFFF; text-align:center">49</td>
<td style="background-color:#FFFFFF; text-align:center">x</td>
<td style="background-color:#FFFFFF; text-align:center"> </td>
<td style="background-color:#FFFFFF; text-align:center"> </td>
</tr>
<tr>
<td style="background-color:#FFFFFF; text-align:center">16</td>
<td style="background-color:#FFFFFF; text-align:center">Q</td>
<td style="background-color:#FFFFFF; text-align:center">33</td>
<td style="background-color:#FFFFFF; text-align:center">h</td>
<td style="background-color:#FFFFFF; text-align:center">50</td>
<td style="background-color:#FFFFFF; text-align:center">y</td>
<td style="background-color:#FFFFFF; text-align:center"> </td>
<td style="background-color:#FFFFFF; text-align:center"> </td>
</tr>
</tbody>
</table>
[/table]
2.Base64的优势。
编码解码速度快。
具有一定的加密效果。
实现简单。
编码解码速度快。
3.实现原理。
Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,因此, 转换后的字节一定会落在区间[0-64)当中,故此可以找到对应基本字符表示此字节,转换后的字符串理论上将要比原来的长1/3。
我们来看一个例子。
转换前:10101111 01101011 11001101
转换后:00101011 00110110 00101111 00001101
编码转换规则:
用指定的编码对字符串进行解码,得到解码后的字节数组。
按照规则把每3个字节转换为4个Base64基本字符。
处理最后的字节
剩余的字节为0,编码转换结束。
剩余的字节为1,把当前字节按照规则转换为Base64前两个字符,后面两位用'='补齐,编码转换结束。
剩余的字节为1,把当前字节按照规则转换为Base64前三个字符,最后一位用'='补齐,编码转换结束。
得到编码后的Base64 String。
解码转换规则:
准备好需要解码的Base64 String。
每4个一组,转换为对应的3个字节。
处理最后剩余的字符。
得到解码后的字节数组。
4.通用的编码传输解决方案。
使用UTF-8对需要传输的String进行编码,得到编码后的字节数组。
用Base64对字节数组进行编码,得到Base64 String。
传输编码后的Base64 String。
接收到传输到字节数组, 如果是字节数组,用本地编码对其进行解码即可,得到Base64 String。
用Base64对 Base64 String 进行解码,得到字节数组。
用UTF-8对字节数组进行解码,得到最终被传输的String。