zoukankan      html  css  js  c++  java
  • Base64攻略

    Base64编码,是网络传输过程中常用的一种编码,使用预先定义好的64个字符,来编码二进制或文本数据。

    编码原理为:
    将待编码数据依次取出3个字节的数据(共24位),每6位为一个编码单元,编码为4个Base64字符
    例如:
    设编码表(BaseTable)为ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
    那么对字符串abc的编码过程如下:
    1。abc的二进制表示为:
        01100001     01100010    01100011
    2。将其按六位为一个单元拆分为
        011000    010110    001001    100011
        这样得到4个2进制数值
        分别为十进制的24,22,9,35
    3。从编码表中取出分别第25,23,10,36个字符(所有+1,因为下标从0开始)
        组成Base64字串,即YWJj

    每次3个字节循环取出所有数据,分别编码并将结果字串连接
    例如:
    待编码字串为abcqwe
    BaseTable同上
    1。每次取三个字节数据,分别为abc和qwe
    2。将abc编码得到YWJj
    3。将qwe编码得到cXdl
    4。连接编码结果,得到整个字串编码结果YWJjcXdl

    如果最后待编码字串不足3位,以0代替补足三位进行编码,并以=补足编码结果
    例如:
    待编码字串为qweab
    BaseTable同上
    1。每次取三个字节数据,分别为qwe和ab,其中ab不足三位
    3。将qwe编码得到cXdl
    3。将ab编码:
        1。abc的二进制表示为:
            01100001     01100010    
            用0补足后得到:
            01100001     01100010  00000000
        2。按没6bit为一单元进行编码
            011000    010110    001000   000000
        3。前三单元对应编码表YWI,最后一位,用=来代替
        4。编码为YWI=
    4。整体编码为cXdlYWI=


       

  • 相关阅读:
    4.内核编译和裁剪
    2.Linux技能要求
    3.字符驱动框架
    1.Linux命令
    4.类和抽象
    3.指针
    2.C++语言特性
    1.编译器
    计数排序——Counting Sort
    网关、网桥、路由器、集线器
  • 原文地址:https://www.cnblogs.com/calmzeal/p/379093.html
Copyright © 2011-2022 走看看