我正在寻找一种方法将base32中加密的字符串解码回mysql中的原始字符串。我知道有一个 SP 可以使用 base64 执行此操作,但找不到 base32 的任何内容。
是否可以?我可以在某处使用存储过程吗?
有什么方法可以实现这一点?
谢谢!
BASE 64 或 BASE 32 未加密,它们只是经过编码。MySQL 没有像 Base 64、FROM_BASE_64 e TO_BASE_64 那样执行 Base 32 字符串编码/解码的本机函数。
作为替代方案,您可以尝试 CONV 数学函数(取决于存储为 BASE32 的内容)。假设您将 UUID 数字存储为 DECIMAL,需要将它们显示为 BASE32,反之亦然:
SELECT uuid, conv(uuid, 10, 32) uuid_b32, conv(conv(uuid, 10, 32), 32, 10)
FROM database.table;
上面的答案是针对不同基数之间的数字转换。如果不是这种情况,例如当您将二进制文件存储在 blob 列上时,您可能需要在 MySQL 之外进行编码/解码。您可以使用MIME::Base32或您喜欢的语言的适当模块。无论如何,您需要知道该字段是否包含以 Base32 编码的文本或二进制文件。