PHP:Base64解码将字符串转换为其他格式,例如小数或二进制



我正在尝试使用" base64转换"其数据的服务,然后将其推向我的服务器。数据分为三种数据类型:字符串,整数和布尔值。为什么他们以这种方式打包我不明白,但这取决于我。

我有一个字符串Qjo0MDk2,该字符串应转换为B:4096和PHP的本机base64_decode功能工作!

但是,如果我尝试将AAATmg==转换为Base-10(十进制)整数值,我想获得5018,但是base64_decode只给我什么也没有。(我认为是因为它试图转换为字符串,而不是基本10整数。)

同样, AA==应该在基本-2(二进制)布尔值中转换为 0,而 AQ==则应在同一中转换为 1

是否有一组功能可以在某个地方进行?我无法想象这是新的。这是一个今天这样做的网站,但没有公开代码:https://conv.darkbyte.ru/

二进制数据不能简单地打印,这就是为什么您看不到base64_decode中的东西,但数据在那里。如果您想真正看到某些东西,则需要将数据转换为十六进制(从技术上讲成十六进制表示)。由于看来第三方应用程序正在这样做(尽管在另一个方向上),因此您必须为所有数据做到这一点。

当您在if语句中使用AA==AQ==的数据表示形式是相同的,即使它们是0001 HexadeCimal-Wise。它们是 true-对PHP,因此执行if部分。如果您实际上想检查他们的状态,则必须将它们转换为int(来自十六进制表示)。

(int) bin2hex(base64_decode("AA==")) // int(0)
(int) bin2hex(base64_decode("AQ==")) // int(1)

尝试直接从二进制转换为int会导致int(0)。因此,当您处理第三方应用程序中的数据时,您必须保持谨慎。

相关内容

  • 没有找到相关文章