微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从Fusionauth DB中存储的BlobID中获取字符串?

如何解决如何从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 举报,一经查实,本站将立刻删除。