【常见加密方法】Base64编码&Tea算法简介

 Base64编码是什么】

  Base64是一种基于64个可打印字符来表示二进制数据的表示方法。

——维基百科

  Base64,顾名思义,是基于64种可视字符的编码方式。这64种符号由A-Z,a-z,0-9以及另外两个视不同系统而定的可视自符(一般为+和/)组成。因为六位二进制数可以表示所有1-26以内的整数,所以在编码过程中取每六位二进制数依照顺序对应相应可视字符

  Base64将3字节的二进制数据,以先来的字节占据高位,不足三字节则在数据尾部用0补足的规则放入24位缓存器中;在计算时,依次取出6bits进行相应对照编码。而当不足三字节进行补0时,编码结束后要在尾部加上相应补充字节数数量的“=”。

【Base64编码图解】

这里拿RED举个例子:  

由图中一层层推到而出RED的Base64编码为UkVE

我们再看看维基百科上缺字节进行补0的例子:

等号数量等于补充的字节数

 

 

Tea 算法

【Tea算法是什么】

 

密码学中,微型加密算法(Tiny Encryption Algorithm,TEA)是一种易于描述和执行块密码,通常只需要很少的代码就可实现。

——维基百科

  Tea算法能够利用4个32位密钥2个32位明文数据进行多轮加密,利用不断增加的Delta值两个32位数据相互加密来保持每一轮加密的和其他任何一轮加密不同。在知道4个32位密钥的情况下,利用可逆的加减操作进行数据的加密与解密。

【Tea算法模版与浅析】

这里我用{1234,4321}作为待加密的两个32位明文数据,用{2147483647,2147483646,2147483645,2147483644}作为四个32位密钥举例。

 

复制代码
 1 #include <cstdio> 2  3 const int delta = 0x9e3779b9;//Tea算法作者的建议值  4 int scr[2],key[4];  5  6 void _pre(){  7     scr[0] = 1234;  8     scr[

                    
                
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信