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

    一.简介 (来自百科)

    Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。

    Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,需要解码后才能阅读

    二.编码

    1.数据转为二进制数据,每8位一个字节,作为基本传输单位.
    2.一串二进制数据,每6位分隔,在高两位在补0,补充为一个字节,作为一个单位.如有3个字节二进制数据,则扩展为4个字节.
    3.数据分隔后,每个字节实际只有低6位有意义,2^4 = 64,这样最多有64种可转换,这应该是base64的意义吧.

    三.编码表
    1.0到25分别对应A到Z.
    2.26到51分别对应a到z.
    3.52到61分别对应0到9.
    4.62对应+,63对应/.

    四.例子
    1.数据:abc
    2.二进制数据:01100001 01100010 01100011
    3.分隔:  011000 010110 001001 100011
    4.分别对应索引:24 22 9 35
    5.索引对应编码表:Y W J j
    6.编码结果:YWJj

    五.总结
    1.打开二进制数据文件,一般都是乱码,通过base64编码,直接可见,可复制,可传输,简单有效.
    2.一个字节8位,没有256个可见字符直接表示,但通过base64编码,多个编码字符代码一个字节.
      这就是拆分的思想啊.在我们编程中,这种思想随处可见,如函数,类,多线程,多进程,分步式等.

  • 相关阅读:
    关于正则表达式的递归匹配问题
    给程序添加启动画面
    C#中的ICollection接口
    C#基本线程同步
    C# 图片裁剪代码
    .NET程序性能的基本要领
    C# 6与VB 12即将加入模式匹配
    Python实例---利用正则实现计算器[FTL版]
    Python实例---利用正则实现计算器[参考版]
    Python学习---重点模块之subprocess
  • 原文地址:https://www.cnblogs.com/ginkgo-leaf/p/9687940.html
Copyright © 2011-2022 走看看