我如何解码下面的base64编码字符串的例子?(它存储在MySQL数据库)base64:type251:WXlnY2p0bFl5Z2NqdGxZeWdjanRsWXlnY2我已经试着用普通的base64解码了,但是没有用。“type 251”前缀应该有意义,但是我在文档/谷歌上没有找到任何东西。有没有在线工具可以解码?
base64:type251:WXlnY2p0bFl5Z2NqdGxZeWdjanRsWXlnY2
vwoqyblh1#
前缀base64:type251:除了对应用程序来说没有任何意义,我假设它是一些额外的注解,告诉客户机在解码结果后如何处理它。你所显示的字符串'WXlnY2p0bFl5Z2NqdGxZeWdjanRsWXlnY2'不是一个有效的base64字符串,因为它没有填充到八位字节的集合中,使之成为24位的偶数倍。https://en.wikipedia.org/wiki/Base64#Output_padding尝试解码失败,只返回NULL:
base64:type251:
'WXlnY2p0bFl5Z2NqdGxZeWdjanRsWXlnY2'
mysql> select from_base64('WXlnY2p0bFl5Z2NqdGxZeWdjanRsWXlnY2') as result; +----------------+ | result | +----------------+ | NULL | +----------------+
如果添加几个=填充字符,MySQL的内置函数可以在去掉前缀后解码base64字符串。
=
mysql> select from_base64('WXlnY2p0bFl5Z2NqdGxZeWdjanRsWXlnY2==') as result; +------------------------------------------------------+ | result | +------------------------------------------------------+ | 0x597967636A746C597967636A746C597967636A746C59796763 | +------------------------------------------------------+
这是一个二进制字节字符串,呈现为十六进制数字,以便以人类可读的形式显示。它是什么意思?我不知道。我可以猜测它是“type251”的一个序列化对象示例,这是保存数据的应用程序特有的东西。你没有描述任何关于你的应用程序的东西,甚至没有描述它是用什么语言编写的。
pgvzfuti2#
这个前缀只需要去掉,去掉它。结果文本解码为“abc”。我不认为base64:前缀有官方规范,我能想到的最接近的是data:,但那是完全不同的。
base64:
data:
2条答案
按热度按时间vwoqyblh1#
前缀
base64:type251:
除了对应用程序来说没有任何意义,我假设它是一些额外的注解,告诉客户机在解码结果后如何处理它。你所显示的字符串
'WXlnY2p0bFl5Z2NqdGxZeWdjanRsWXlnY2'
不是一个有效的base64字符串,因为它没有填充到八位字节的集合中,使之成为24位的偶数倍。https://en.wikipedia.org/wiki/Base64#Output_padding尝试解码失败,只返回NULL:
如果添加几个
=
填充字符,MySQL的内置函数可以在去掉前缀后解码base64字符串。这是一个二进制字节字符串,呈现为十六进制数字,以便以人类可读的形式显示。
它是什么意思?我不知道。我可以猜测它是“type251”的一个序列化对象示例,这是保存数据的应用程序特有的东西。你没有描述任何关于你的应用程序的东西,甚至没有描述它是用什么语言编写的。
pgvzfuti2#
这个前缀只需要去掉,去掉它。结果文本解码为“abc”。
我不认为
base64:
前缀有官方规范,我能想到的最接近的是data:
,但那是完全不同的。