BASE64加解密

原创 2016年06月01日 16:01:24
BASE64 是一种编码的方式,并不是真正意义上的加解密,不过,从另一个角度来考虑的话,就是把数据变为人不会用肉眼能分辨其真实性的角度来说,BASE64 也是属于加解密范畴的。而且,有的加密技术,也是需要通过 BASE64 来编码转换的。

那么,BASE64 到底是什么呢?下面我来大概的介绍一下 BASE64 的编码原理。

BASE64 的编码都是按字符串长度,以每 3 个 8 bit 的字符为一组,然后针对每组,首先获取每个字符的 ASCII 编码,然后将 ASCII 编码转换成 8 bit 的二进制,得到一组 3*8=24 bit 的字节。然后再将这 24 bit 划分为 4 个 6 bit 的字节,并在每个 6 bit 的字节前面都填两个高位 0,得到 4 个 8 bit 的字节,然后将这 4 个 8 bit 的字节转换成十进制,对照 BASE64 编码表 (下表),得到对应编码后的字符。

注:1. 要求被编码字符是8bit的,所以须在ASCII编码范围内,\u0000-\u00ff,中文就不行。
  2. 如果被编码字符长度不是3的倍数的时候,则都用0代替,对应的输出字符为=



原理讲清楚了,下面举两个例子说明一下。

a) 字符长度为能被3整除时:比如“Tom” :



所以,btoa('Tom') = VG9t,也就是说,“Tom”的 BASE64 编码结果为 VG9t。

b) 字符串长度不能被3整除时,比如“Lucy”:



由于 Lucy 只有 4 个字母,所以按 3 个一组的话,第二组还有两个空位,所以需要用 0 来补齐。这里就需要注意,因为是需要补齐而出现的 0,所以转化成十进制的时候就不能按常规用 BASE64 编码表来对应,所以不是 a, 可以理解成为一种特殊的“异常”,编码应该对应“=”。
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Base64的加解密工具

  • 2015年06月18日 17:35
  • 167KB
  • 下载

base64加解密

  • 2016年01月08日 16:14
  • 895B
  • 下载

理解一下base64算法,一个PHP加解密方法

一、先通过一个PHP加密解密方法来看:function encrypt($string,$operation,$key='darling'){ $key=md5($key); $key...

Base64加解密工具

  • 2014年02月02日 11:05
  • 167KB
  • 下载

base64加解密网页工具

  • 2017年06月20日 16:44
  • 2KB
  • 下载

CTF-base64加解密

base64是一种编码方式。把3个8bit变成4个6bit。然后不足补0,符号是’=’. 然后还有一张表。测试ZmxhZ3tUSEVfRkxBR19PRl9USElTX1NUUklOR30= 输出:...

Base64、MD5加解密

  • 2012年01月30日 16:08
  • 12.35MB
  • 下载

SHA256withRSA签名验签 & BASE64加解密

//SHA256withRSA签名验签 //BASE64加解密
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:BASE64加解密
举报原因:
原因补充:

(最多只允许输入30个字)