最近对网络安全的兴趣猛涨,闲着没逝,给大家整一期Base64的加密与解密
Base64加密:
在了解Base64加密之前,必须要先了解ascii码对照表和Base64编码表
ascii码对照表:
Base64编码表:

下面正式介绍Base64的加密过程。
Base64是一种常用的编码方式,它将二进制数据转换为可打印的ASCII字符。下面是Base64的加密过程:
1.将待加密的数据按照每3个字节一组进行分组。如果最后一组不足3个字节,则进行补齐操作。将每个字节转换为8位二进制数,然后将这24位二进制数分成4组,每组6位。
2.将这4个6位的数字转换为对应的Base64字符。Base64字符集包括A-Z、a-z、0-9、+和/共64个字符,分别对应0-63的数字。将这4个6位数字转换为对应的Base64字符。
3.如果最后一组不足3个字节,会进行补齐操作。补齐操作会在最后一组的末尾添加1或2个等号,表示补齐的字节数。
化简的步骤如下:
1.将待加密的数据按照每3个字节一组进行分组。
2.将每组的3个字节按照ascii码对照表转换为4个6位的二进制数。
3.将这4个6位的二进制数转换为对应的Base64字符。
4.如果最后一组不足3个字节,会进行补齐操作。
- 将字符串"sunflower"转换为ASCII码表示的二进制数据:
s -> 0
u -> 0
n -> 0
f -> 0
l -> 0
o -> 0
w -> 0
e -> 0
r -> 0 - 将上述二进制数据拼接在一起:
000010 - 将上述二进制数据按照每6位进行分组: 011100 010101 011001 011101 010101 11001
- 将上述6位的二进制数转换为十进制: 28 55 21 46 25 38 49 47 29 54 21 50

- 将上述十进制数转换为Base64字符表中对应的字符: c3VuZmxvd2Vy
因此,将字符串"sunflower"进行Base64加密后的结果为"c3VuZmxvd2Vy"。
接下来讲解Base64解密
Base64解密:
Base64的解密过程与加密过程相反,将Base64字符转换为对应的6位数字,然后将这4个6位数字转换为3个字节。解密过程会忽略补齐的等号。
解密Base64的具体过程如下:
将Base64编码的字符串按照每4个字符一组进行分组。
对每个分组进行解码,将每个字符转换为对应的数值。
将每个数值转换为6位二进制数。
将这些6位二进制数拼接起来,得到一个二进制串。
如果原始数据的长度不是3的倍数,会在末尾添加一个或两个等号作为填充字符。
将得到的二进制串按照8位一组进行分组,得到最终的二进制数据。
再举个例子,假设有一个Base64编码的字符串"c3VuZmxvd2Vy",解密过程如下:
- 首先,将字符串"c3VuZmxvd2Vy"转换为二进制数据。由于Base64编码是将3个字节转换为4个可打印字符,因此需要将字符串长度补齐为4的倍数。在这种情况下,可以在末尾添加一个或两个等号(=)进行补齐,得到"c3VuZmxvd2Vy=="。
- 将补齐后的字符串进行解码。将每个字符转换为对应的Base64值,然后将这些值组合起来得到二进制数据。Base64值可以通过查找Base64编码表获得。
对于字符"c",其Base64值为28;对于字符"3",其Base64值为55;对于字符"V",其Base64值为21;对于字符"u",其Base64值为46;对于字符"Z",其Base64值为25;对于字符"m",其Base64值为38;对于字符"x",其Base64值为49;对于字符"d",其Base64值为29;对于字符"2",其Base64值为54;对于字符"V",其Base64值为21;对于字符"y",其Base64值为50。
- 将这些Base64值转换为二进制数据并分组,得到二进制序列:011100 010101 011001 011101 010101 。
- 最后,将得到的二进制数据转换为字符串。根据ASCII编码表,将每个8位二进制数转换为对应的字符。对于上述二进制序列,转换后得到字符串"sunflower"。
因此,将字符串"c3VuZmxvd2Vy"进行Base64解密后得到的结果是"sunflower"。
以上就是我对Base64的加密与解密的全部了解。如果文章里有些小毛病或者有一些细节待补充,希望能帮忙在评论区纠错。
最后,都看到这里了,给本蒟蒻点个赞再走嘛?


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/12820.html