BASE64
base64是一种编码方式,用于把二进制数据编码为可写的字符形式的数据。
编码后的数据是一个字符串,其中包含的字符为:A-Z、a-z、0-9、+、/
共64个字符:26 + 26 + 10 + 1 + 1 = 64。不足的时候需要用=来填充,也可以说是65个字符。
64个字符需要6位来表示,表示成数值为0~63。
长度为3个字节的数据(每个8位)经过Base64编码后就变为4个字节。
即 3 * 8 / 6 = 4 。
以sun字符串为例,首先查看s、u、n的ascii码。
var_dump(ord('s'));
var_dump(ord('u'));
var_dump(ord('n'));
int 115
int 117
int 110
当 字节位数不是3的倍数时,例如2个字符,2*8 = 16 ,不是3的倍数,则需要在原数据后面添加1个或2个零值字节,使其字节数是3的倍数。
以su为例:
其中红色部分的其实不是0,只是解释成0,不能按照上面的表中的A来计算。这样如果全部是补充的用=填充,如果有非填充的则用其他的,如果为0则为A。
php中ord()函数为,取得字符的ascii码。
经验证,和php中函数计算出来的结果是一样的。
面试被问了一堆关于base64和ascii码的转换的问题,记录下来充充电。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
· SQL Server 内存占用高分析
· 盘点!HelloGitHub 年度热门开源项目
· DeepSeek V3 两周使用总结
· 02现代计算机视觉入门之:什么是视频
· C#使用yield关键字提升迭代性能与效率
· 回顾我的软件开发经历(1)