关闭

BASE64加解密

标签: BASE64加密技术
340人阅读 评论(0) 收藏 举报
分类:
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, 可以理解成为一种特殊的“异常”,编码应该对应“=”。
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Base64加解密的两种实现方式

第一种方式  直接加解密 import java.util.Base64; import java.util.Base64.Decoder; import java.util.Base64.Encod...
  • tigerxuchuanli
  • tigerxuchuanli
  • 2016-11-27 23:35
  • 359

python中base64模块的加解密函数

Base64模块简介   Base64是一种基于64个可打印字符来表示二进制数据的表示方法。Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据(或不可打印的字符串)。包括M...
  • changzhi1990
  • changzhi1990
  • 2013-12-11 13:53
  • 899

JAVA加密解密之Base64

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如...
  • jianggujin
  • jianggujin
  • 2016-01-16 13:54
  • 2035

Java代码Base64加密解密使用

Java代码Base64加密解密使用       程序中有时候需要把用户名和密码保存到本地,下次登录时自动获取,如果是直接使用字符串保存,肯定容易泄露密码,这就需要经过加密,但是登录时还要获取密码,这...
  • wenzhi20102321
  • wenzhi20102321
  • 2017-04-06 14:04
  • 1377

base64加解密

平常工作中偶尔会用到base64进行简单的数据加解密,或者将结构体转换成可打印的字符串进行传递。 原理 1、将三个字节转换成四个字节:三个字节24位,分成四组,再在每个6位前面...
  • wustzjf
  • wustzjf
  • 2016-01-21 23:37
  • 451

Base64 加解密

1.  举一个具体的实例,演示英语单词Man如何转成Base64编码。 Text content M a n ASCII 77 97...
  • zzwdkxx
  • zzwdkxx
  • 2013-05-27 10:36
  • 683

base64加解密

+ (NSString *)base64StringFromText:(NSString *)text { if (text && ![text isEqualToString:Loc...
  • gaoyuqiang30
  • gaoyuqiang30
  • 2015-10-22 18:00
  • 385

Base64加解密

import java.io.UnsupportedEncodingException; public class Base64 { private static char[] base6...
  • zhaifengmin
  • zhaifengmin
  • 2013-12-12 16:17
  • 530

base64加解密

//base64 加解密 //by as1138 2013-05-18 #include #include #include using namespace std; string base6...
  • csy981848153
  • csy981848153
  • 2013-05-18 16:36
  • 662

Java Base64加密解码实例

import java.io.ByteArrayOutputStream; public class Base64 { private static char[] base64EncodeChar...
  • vicken520
  • vicken520
  • 2013-06-09 17:41
  • 14102
    个人资料
    • 访问:197315次
    • 积分:5250
    • 等级:
    • 排名:第6072名
    • 原创:319篇
    • 转载:187篇
    • 译文:1篇
    • 评论:14条
    文章分类