如何将 base32 解码为 mysql 中的字符串
How can I decode base32 to string in mysql
我正在寻找一种方法来将以 base32 加密的字符串解码回 mysql 中的原始字符串。
我知道有一个 SP 可以使用 base64 执行此操作,但找不到 base32 的任何内容。
可能吗?有没有我可以在某处使用的存储过程?
有哪些实现方法?
谢谢!
BASE 64 或 BASE 32 未加密,只是经过编码。 MySQL 没有执行 Base 32 字符串的 encoding/decoding 的本机函数,因为它具有 Base 64,FROM_BASE_64 e TO_BASE_64。
作为替代方案,您可以尝试使用 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 之外执行 encoding/decoding。您可以使用 MIME::Base32 或您首选语言的适当模块。无论如何,您需要知道该字段是否具有以 Base32 编码的文本或二进制。
我正在寻找一种方法来将以 base32 加密的字符串解码回 mysql 中的原始字符串。 我知道有一个 SP 可以使用 base64 执行此操作,但找不到 base32 的任何内容。
可能吗?有没有我可以在某处使用的存储过程?
有哪些实现方法?
谢谢!
BASE 64 或 BASE 32 未加密,只是经过编码。 MySQL 没有执行 Base 32 字符串的 encoding/decoding 的本机函数,因为它具有 Base 64,FROM_BASE_64 e TO_BASE_64。
作为替代方案,您可以尝试使用 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 之外执行 encoding/decoding。您可以使用 MIME::Base32 或您首选语言的适当模块。无论如何,您需要知道该字段是否具有以 Base32 编码的文本或二进制。