Base64编码首先将明文转为二进制数据,此时得到的二进制数据中每8个bit位为一个单元,如下:
明文--ES
明文转ASCII--69 83
ASCII转二进制--01000101 01010011
然后将一个单元由8bit改为6bit,如下:
010001 010101 0011
此时由于最后一个单元不足6bit,我们对齐进行补0操作:
010001 010101 001100
将其转为十进制:
17 21 12
根据base64字符表:
在其中找到对应的字符,即:17-R 21-V 12-M
于是得到RVM的编码结果。
此时,由于我最开始的输入数据不能被3整除,所以编码结果需要使用=填充,使编码结果的字符串长度可以被4整除,于是得到最终的编码结果:RVM=。
原文始发于微信公众号(Eonian Sharp):Base64编码原理
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论