技术解析

base64 编码有什么不同吗
0
2021-06-03 19:21:26
idczone

1.通过线上 base64 编码和 PHP 本美国服务器地 base64_decode 编码得到的结果是不一样的 2.编码得到的都是二进制文件 3.线上的结果和 ios 是一致的,想问下这是为什么呢。php 是 MIME base64 编码的。


发代码看看吧,感觉是字符串编码问题。

utf8 和 gbk 的问题吧

是不是换行了,我记得有些 base64 库是会添加换行的

base64_decode 不是解码吗?
难道不是应该 base64_encode 来编码吗?

打印出来不就知道了,有些库字符会自己转移

是不是 base64 个 url_safe base64 的区别 我之前遇到过这个问题,被坑了一次

是不是 base64 和 url_safe base64 的区别 我之前遇到过这个问题,被坑了一次

一般是换行的区别

不贴代码没法解决,随便踩个坑都可能出现问题,写个 demo 验证下然后贴出来看看,

base64 有 Std 和 URL 两种 ,主要是 对 +/ 或者 -_ 多出的两个符号处理不一致, 还有 结尾的 也不一样,所以还有 padding 和 nopadding (结尾的=号),如果是 URL 还要考虑 URL_ENCODE
具体看:
RFC 4648. section 3.2.

PS : 我是从 golang 的 base64 了解到这些的.

一种是编码字符集的问题,注意一点:base64 是对一堆字节进行编码,通常连长度都相当不一致
一种是字母表不一致的问题,通常仅限于 +/ vs -_ ,硬要说 padding vs no padding 也可以理解为 padding 字符串是 '=' 还是 ''

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服