• base64详解


    base64详解

    base64概念

    base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,它的目的是用ASCII中定义的可见字符去表示任意的二进制数据。之所以要这样做,是因为计算机中很多数据是只能通过可见字符去传输的(比如我们的网站网址,比如一些面向字符的网络协议如SMTP等),但是这些情景有时又需要去传输二进制数据。基于这样的需要,诞生了Base64.
    简单来讲,Base64就是用下列总计64个字符:

    A-Z
    a-z
    0-9
    +
    /
    

    去表示二进制数据。二进制数据以字节为组,一个字节8bit存在256个状态,而一个Base64字符只有64个状态。机智的人们于是规定,用每4个Base64字符去表示3个二进制字节,因为:

    64 * 64 * 64 * 64 = 256 * 256 * 256
    

    因此,Base64字符串的长度必然是4的整数倍。此外,由于二进制的字节数不一定是3的整数倍,所以Base64字符串在结尾是可能有空的。这些空的状态,Base64引入第65个字符去表示:

    =
    

    这也是为什么Base64很多都是以=或==结尾的。但是注意,也存在不以===结尾的Base64,只要编码的二进制字节数恰好被3给整除。
    总结:一般情况下,一个合法的Base64,有着以下特征:

    字符串的长度为4的整数倍。
    字符串的符号取值只能在A-Z, a-z, 0-9, +, /, =共计65个字符中,且=如果出现就必须在结尾出现。
    

    base64加密

    格式:base64
    从标准输入中读取数据,按Ctrl+D结束输入。将输入的内容编码为base64字符串输出。
    格式:echo "str" | base64
    将字符串str +换行 编码为base64字符串输出。
    格式:echo -n "str" | base64
    将字符串str编码为base64字符串输出。注意与上面的差别。
    格式:base64 file
    从指定的文件file中读取数据,编码为base64字符串输出。

    base64解密

    格式:base64 -d
    从标准输入中读取已经进行base64编码的内容,解码输出。
    格式:base64 -d -i
    从标准输入中读取已经进行base64编码的内容,解码输出。加上-i参数,忽略非字母表字符,比如换行符。

    man base64 写道
    -i, --ignore-garbage
    When decoding, ignore non-alphabet characters.
    
    use --ignore-garbage to attempt to recover from non-alphabet characters (such as newlines) in the encoded stream.
    

    格式:echo "str" | base64 -d
    将base64编码的字符串str+换行 解码输出。
    格式:echo -n "str" | base64 -d
    将base64编码的字符串str解码输出。 注意与上面的差别。
    在线转换:https://www.base64decode.org/
    参考链接:https://en.wikipedia.org/wiki/Base64

  • 相关阅读:
    Android之JSON格式数据解析
    SSH面试题锦集
    Mysql
    (二)Java基础巩固
    (一)Java基础巩固
    (五)Oracle函数 序列 约束 索引
    让css初学者抓狂的属性float
    微信小程序(4)--二维码窗口
    微信小程序(3)--页面跳转和提示框
    微信小程序(2)--下拉刷新和上拉加载更多
  • 原文地址:https://www.cnblogs.com/pengpengboshi/p/16207274.html
Copyright © 2020-2023  润新知