我正在寻找一种方法将在base32中加密的字符串解码回mysql中的原始字符串。 我知道有一个SP用base64做这个,但找不到base32的任何东西。
有可能吗?我可以在某处使用存储过程吗?
有什么方法可以实现这个目标?
谢谢!
答案 0 :(得分:4)
BASE 64或BASE 32未加密,只是编码。 MySQL没有本机函数来执行Base 32字符串的编码/解码,就像它对Base 64,FROM_BASE_64和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之外进行编码/解码。您可以使用MIME::Base32或您首选语言的正确模块。无论如何,您需要知道该字段是否在Base32中编码了文本或二进制文件。