为了账号安全,请及时绑定邮箱和手机立即绑定

在 Java 中将 UUID 编码为 Base62(不是 Base64)

在 Java 中将 UUID 编码为 Base62(不是 Base64)

HUH函数 2021-09-29 14:54:54
我正在尝试缩短 UUID 值(存储在数据库中作为 UUID,而不是字符串)嵌入到 URL 中。我知道 URL 的 Base64,但试图看看我是否可以在没有破折号和下划线字符的情况下制作它。所以我想将 UUID 转换为 base62。经过大量的谷歌搜索,我发现:对此没有标准(类似于 RFC2045),对吗?最重要的是,它没有适当的实现。我发现了很多关于如何做到这一点的片段,但有一些说明“这是一个天真的实现”或其他东西。是否有适当的实现(我不介意准确解释映射应该如何完成,只要它正确完成)?Apache Commons Codec 和 Guava 中有一些基类为 Base32 和 Base64 扩展,但我发现为 Base62 扩展它并不容易。甚至有可能做到吗(考虑到映射根本不同的事实)?谢谢。
查看完整描述

2 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

编解码器Base62Codec可以将 UUID 有效地编码为 base-62。


// Returns a base-62 string

// uuid::: 01234567-89AB-4DEF-A123-456789ABCDEF

// base62: 0296tiiBY28FKCYq1PVSGd

String string = Base62Codec.INSTANCE.encode(uuid);

uuid-creator的同一个包中有其他编码的编解码器。


查看完整回答
反对 回复 2021-09-29
  • 2 回答
  • 0 关注
  • 495 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信