如何解决如何从Fusionauth DB中存储的BlobID中获取字符串?
出于分析目的,我想对Fusionauth DB运行查询。但是id字段存储为二进制Blob。您是否有一个函数(java或sql)可以用来将该blob转换为字符串?
解决方法
我假设您正在使用MySQL。 FusionAuth使用UUID作为唯一ID,在MySQL中,我们将其存储为BINARY(16)
。
如果要以易于阅读的形式选择此值,则可以执行诸如SELECT HEX(id) FROM table_name
之类的选择。
如果要选择此列并将其反序列化为Java UUID类型,则可以使用类似于以下代码:
public UUID fromByteArray(byte[] ba) {
long msb = 0;
long lsb = 0;
for (int i = 0; i < 8; i++) {
msb = (msb << 8) | (ba[i] & 0xff);
}
for (int i = 8; i < 16; i++) {
lsb = (lsb << 8) | (ba[i] & 0xff);
}
return new UUID(msb,lsb);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。